狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

SQL SERVER分區(qū)視圖

admin
2011年5月4日 23:32 本文熱度 3146
借助SQL SERVER分區(qū)視圖,可以對(duì)SQL中的表進(jìn)行集中管理,下文將以實(shí)例的方式為您詳解SQL SERVER分區(qū)視圖,希望對(duì)您學(xué)習(xí)SQL數(shù)據(jù)庫(kù)能有所幫助。

SQL SERVER分區(qū)視圖給我們提供了一種實(shí)現(xiàn)大數(shù)據(jù)量管理的方法,類(lèi)似于其它數(shù)據(jù)庫(kù)管理系統(tǒng)的分區(qū)視圖。不僅實(shí)現(xiàn)了表的集中管理,而且實(shí)現(xiàn)了數(shù)據(jù)的快速定位。下邊我就以一個(gè)日志記錄表為例來(lái)說(shuō)以下分區(qū)視圖的作用:


日志記錄表可以記錄很長(zhǎng)時(shí)間的日志信息,隨著時(shí)間的推移,日志表會(huì)變的很大。這樣對(duì)與表的查詢和維護(hù)操作都是非常慢的,但是如果我們按日期來(lái)劃分把表分成若干小表,而在邏輯上統(tǒng)一使用一個(gè)視圖來(lái)查詢管理,那么是非常方便的.而且SQL SERVER可以根據(jù)查詢的條件來(lái)自動(dòng)的定位表,這樣也就提高了查詢的速度.


-- 首先我們要實(shí)現(xiàn)的是一個(gè)記錄日志的存儲(chǔ)過(guò)程,這個(gè)存儲(chǔ)過(guò)程不是簡(jiǎn)單的把日志插入,還要按當(dāng)前日期來(lái)判斷-- 表是否存在,然后動(dòng)態(tài)的建立表,并按分區(qū)表的規(guī)則建立CHECK約束.在此例中,我們使用的是按周的日期來(lái)-- 規(guī)定表的名稱(chēng)如下:dbo.[20061218-20061224]



  1. use TestDB  

  2. if exists (select name from sysobjects where name = 'P_LogWriter' and type = 'P')  

  3.    drop proc dbo.P_LogWriter  

  4. go  

  5. ----Log日志文件  

  6.  

  7. create proc dbo.P_LogWriter  

  8. @desc varchar(1000)  

  9. as  

  10. begin tran  

  11. set nocount on  

  12.  

  13. declare @wk_start datetime,@wk_end datetime  

  14. declare @str_start varchar(50),@str_end varchar(50)  

  15. declare @tb_name varchar(100),@sql varchar(4000)  

  16.  

  17. -- 周的開(kāi)始日期  

  18. set @wk_start=dateadd(d,2-datepart(dw,getdate()),convert(char(10),getdate(),120))  

  19. -- 周的結(jié)束日期  

  20. set @wk_end=dateadd(s,-1,dateadd(wk,1,@wk_start))  

  21.  

  22. set @str_start=convert(varchar(50),@wk_start,120)  

  23. set @str_end=convert(varchar(50),@wk_end,120)  

  24.  

  25. -- 表的名稱(chēng)  

  26. set @tb_name=convert(varchar(10),@wk_start,112)+'-'+convert(varchar(10),@wk_end,112)  

  27.  

  28. -- 如果表不存在,就建立表  

  29. if not exists(select 1 from sysobjects where name=@tb_name and xtype='U')  

  30. begin  

  31.    set @sql='create table dbo.['+@tb_name+'](id int identity(1,1),updatetime datetime primary key check(updatetime between '''+@str_start+''' and '''+@str_end+'''),[desc] varchar(1000))'  

  32.    --print @sql  

  33.    exec(@sql)  

  34. end  

  35.  

  36. -- 插入相應(yīng)的日志數(shù)據(jù)  

  37. set @sql='insert ['+@tb_name+'](updatetime,[desc]) select getdate(),'''+@desc+''''  

  38. exec(@sql)  

  39.  

  40. set nocount off  

  41. commit tran  

  42. Go  

  43.  
-- 創(chuàng)建分區(qū)視圖 

 

  1. create view v_Log  
  2. as  
  3. select * from dbo.[20061218-20061224]  
  4. union all  
  5. select * from dbo.[20061225-20061231]  
  6. Go 

-- 查詢分區(qū)視圖


  1. select * from v_Log  
  2. where updatetime<'2006-12-24 11:21:27.653' 

-- 通過(guò)分析查詢的執(zhí)行計(jì)劃我們可以看到,SQL SERVER可以自動(dòng)定位相應(yīng)的表取得數(shù)據(jù),從而提高了查詢的-- 速度.


該文章在 2011/5/4 23:32:09 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專(zhuān)業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車(chē)隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類(lèi)企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷(xiāo)售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved