成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SQL SERVER分區視圖

數據庫 SQL Server
SQL SERVER分區視圖實現了數據的快速定位,對SQL中的表進行集中管理,讓大數據量管理成為了可能,提高了查詢的速度。

借助SQL SERVER分區視圖,可以對SQL中的表進行集中管理,下文將以實例的方式為您詳解SQL SERVER分區視圖,希望對您學習SQL數據庫能有所幫助。

SQL SERVER分區視圖給我們提供了一種實現大數據量管理的方法,類似于其它數據庫管理系統的分區視圖。不僅實現了表的集中管理,而且實現了數據的快速定位。下邊我就以一個日志記錄表為例來說以下分區視圖的作用:

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

-- 首先我們要實現的是一個記錄日志的存儲過程,這個存儲過程不是簡單的把日志插入,還要按當前日期來判斷-- 表是否存在,然后動態的建立表,并按分區表的規則建立CHECK約束.在此例中,我們使用的是按周的日期來-- 規定表的名稱如下: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. -- 周的開始日期  
  18. set @wk_start=dateadd(d,2-datepart(dw,getdate()),convert(char(10),getdate(),120))  
  19. -- 周的結束日期  
  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. -- 表的名稱  
  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. -- 插入相應的日志數據  
  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.  

#p#-- 創建分區視圖

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

-- 查詢分區視圖

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

-- 通過分析查詢的執行計劃我們可以看到,SQL SERVER可以自動定位相應的表取得數據,從而提高了查詢的-- 速度.
 

 

 

【編輯推薦】

教您如何使用SQL中的函數替代游標

創建SQL函數的實例

SQL中返回計算表達式的函數

SQL中循環語句的效果實例

SQL中類似For循環處理的實例

責任編輯:段燃 來源: CSDN博客
相關推薦

2010-06-30 16:58:24

SQL Server分

2011-04-02 17:21:29

sql server視圖

2010-07-14 10:11:30

SQL Server系

2010-11-12 11:19:19

SQL Server視

2010-09-27 09:54:26

Sql Server視

2010-07-19 16:36:13

SQL Server視

2010-11-10 14:47:11

SQL Server創

2010-11-11 17:20:51

SQL Server創

2009-07-02 12:57:00

SQL Server視

2010-07-19 09:31:53

SQL Server系

2010-07-12 10:34:58

SQL Server視

2010-11-11 17:15:13

SQL Server視

2010-07-07 13:18:13

SQL Server視

2010-10-21 15:07:09

SQL Server系

2010-11-11 16:59:59

SQL Server視

2011-03-21 10:13:31

Sql Server數分區

2011-07-06 13:09:11

SQL Server

2010-11-10 14:35:17

SQL Server創

2010-07-06 17:16:43

SQL Server視

2010-07-15 15:42:38

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91久久久久久久久 | 久久精品一区二区 | 国产7777 | 奇米久久久 | 日本在线免费视频 | 午夜久久久 | 精品国产91 | 久久伊人久久 | 涩爱av一区二区三区 | 午夜免费在线电影 | 国产精品一区二区三区在线 | 亚洲三区在线观看 | 成人区精品一区二区婷婷 | 中文字字幕一区二区三区四区五区 | 天天爱天天操 | 国产一区二区精品在线观看 | 久久夜视频 | 久久av一区二区三区 | 男女视频在线观看免费 | 91精品国产色综合久久 | 婷婷中文在线 | 亚洲精品成人在线 | 欧美一级欧美三级在线观看 | 国产精品久久久久久久久久久久久久 | 国产精品不卡一区 | 国产精品亚洲精品久久 | 日韩一区二区三区四区五区六区 | 欧美日韩国产在线观看 | 青青草华人在线视频 | 久久久九九九九 | 国产欧美在线视频 | 久久伊人影院 | 91免费在线视频 | 97久久国产| 中文字幕人成乱码在线观看 | 日韩在线观看视频一区 | 免费黄篇 | www.日本国产 | 操操操日日日 | 久久国产亚洲 | 欧美日韩专区 |