国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關注微信公眾號

SQL Server datetime數據類型設計與優化誤區
2010-11-29   網絡

一、場景

在SQL Server 2005中,有一個表TestDatetime,其中Dates這個字段的數據類型是datetime,如果你看到表的記錄如下圖所示,你最先想到的是什么呢?

數據列表

(圖1:數據列表)

你看到這些數據,是不是覺得這樣的設計既浪費了存儲空間,又使得這個列的索引增大,查詢起來更慢,你也想使用一些其它的數據類型來代替這個datetime吧?

其實大家都是這么想的,這個方向是100%正確的,但是在寫這篇文章以前,我進入了兩個誤區:(如果你中了下面的兩個誤區,那么請你看看這篇文章吧。)

誤區一: 把Dates字段的datetime數據類型換成smalldatetime,這樣數據就由:‘2009-04-09 00:00:00.000’變為‘2009-04-09 00:00:00’,這個看起來沒有減少多少存儲空間哦。

誤區二:把Dates字段的datetime數據類型換成char(10),這樣數據就由:‘2009-04-09 00:00:00.000’變為‘2009-04-09’,這好像能減少很多存儲空間哦。

二、分析

在SQL Server 2005版本中保存日期的數據類型只有兩種:datetime、smalldatetime,但是在SQL Server 2008版本中新增了一些日期數據類型:time、date、smalldatetime、datetime、datetime2、datetimeoffset,其中的date類型就能滿足我們場景中的需求了,如果你幸運的在使用SQL Server 2008的話,那么恭喜你,請使用date數據類型吧。

但是我就比較可悲一點了,在使用SQL Server 2005的前提下,我進入了誤區一、誤區二。其實這也是因為自己忽略了一下基礎性的東西,如果知道不同數據類型的存儲空間大小,也許就很輕易的避免這樣低級的錯誤了。

其實你查看表TestDatetime中的Dates字段的時候,看到查詢結果中的:“-”、“:”只是用于顯示的,并不是真實保存的時候就這樣格式的。

datetime占用8個字節,前4個字節存儲base date(即1900年1月1日)之前或之后的天數,后4個字節存儲午夜后的毫秒數。值范圍:1753-01-01 到 9999-12-31。

smalldatetime占用4個字節,前2個字節存儲base date(1900年1月1日)之后的天數。后2個字節存儲午夜后的分鐘數。值范圍:1900-01-01 到 2079-06-06。

date占用3個字節,它比smalldatetime的前2個字節多了1字節,所以值的范圍更廣了。值范圍:0001-01-01 到 9999-12-31。

所以,如果你使用char(10)來保存截斷的日期,那么你的存儲空間反而更大了。

結論: 如果是SQL Server 2005,那么請你使用smalldatetime吧,數據能節約一半,雖然查詢的時候看起來沒什么改變;如果你是SQL Server 2008,那么請你使用date吧,

雖然3個字節跟4個字節沒有多大的差距,但是從設計上和邏輯清晰度上都有很大的提升,而且差距有些時候并不是1個字節的問題,比如當表數據量達到幾個億的時候,還是有差別的,又或者一條記錄可能因為差1個字節就剛剛好給8060字節的頁瓜分,這些都不容忽視的。

三、測試

下面我們就從數據存儲的大小、索引存儲的大小、索引使用時候的速度這幾個方面進行測試:(這里只測試數據類型:,,數據的內容都是一樣的)

(一) 測試前奏:

1.      創建三種數據類型char(10)、datetime、smalldatetime的表;(表結構如下面SQL)

  1. CREATE TABLE [dbo].[TestDatetime](  
  2.     [Id] [int] IDENTITY(1,1) NOT NULL,  
  3.     [Dates] [datetime] NULL,  
  4.  CONSTRAINT [PK_TestDatetime] PRIMARY KEY CLUSTERED  
  5. (  
  6.     [Id] ASC 
  7. )WITH (IGNORE_DUP_KEY = OFFON [PRIMARY]  
  8. ON [PRIMARY

2.      插入相同記錄到三個表中;(這里插入1210000條記錄)

3.      為[Dates]字段創建索引;(在創建索引的時候可以設置填充因子為100%)

4.      查看索引屬性中的索引碎片信息,查看表數據和索引占用的空間,測試[Dates]字段索引的查詢效率;

(二) 測試結果:

1.      數據存儲大小:

數據空間對比
 

(圖2:數據空間對比)

2.      索引存儲信息:

char(10) 

(圖3:char(10))

datetime

(圖4:datetime)

smalldatetime

(圖5:smalldatetime)

3.      索引查詢的情況:

多次執行,SQL Server執行時間為:[char(10)] 大部分在43~59徘徊,偶爾出現小于10的;[datetime]平均在1~2毫秒;[smalldatetime]均在1毫秒;而且大家會發現[smalldatetime]有其它的9次邏輯讀取變為8次了。

--[TestChar10]

SQL Server 分析和編譯時間:

CPU 時間= 0 毫秒,占用時間= 1 毫秒。

(2200 行受影響)

表'TestChar10'。掃描計數1,邏輯讀取9 次,物理讀取0 次,預讀0 次,lob 邏輯讀取0 次,lob 物理讀取0 次,lob 預讀0 次。

SQL Server 執行時間:

CPU 時間= 0 毫秒,占用時間= 59 毫秒。

SQL Server 執行時間:

CPU 時間= 0 毫秒,占用時間= 1 毫秒。

--[TestDatetime]

SQL Server 分析和編譯時間:

CPU 時間= 0 毫秒,占用時間= 1 毫秒。

(2200 行受影響)

表'TestDatetime'。掃描計數1,邏輯讀取9 次,物理讀取0 次,預讀0 次,lob 邏輯讀取0 次,lob 物理讀取0 次,lob 預讀0 次。

SQL Server 執行時間:

CPU 時間= 0 毫秒,占用時間= 2 毫秒。

SQL Server 執行時間:

CPU 時間= 0 毫秒,占用時間= 1 毫秒。

--[TestSmalldatetime]

SQL Server 分析和編譯時間:

CPU 時間= 0 毫秒,占用時間= 1 毫秒。

(2200 行受影響)

表'TestSmalldatetime'。掃描計數1,邏輯讀取8 次,物理讀取0 次,預讀0 次,lob 邏輯讀取0 次,lob 物理讀取0 次,lob 預讀0 次。

SQL Server 執行時間:

CPU 時間= 0 毫秒,占用時間= 1 毫秒。

SQL Server 執行時間:

CPU 時間= 0 毫秒,占用時間= 1 毫秒。

--SQL Server 2008新數據類型

  1. SELECT 
  2. CAST('2007-05-08 12:35:29. 1234567 +12:15' AS time(7)) AS 'time' 
  3. ,CAST('2007-05-08 12:35:29. 1234567 +12:15' AS dateAS 'date' 
  4. ,CAST('2007-05-08 12:35:29.123' AS smalldatetime) AS 
  5. 'smalldatetime' 
  6. ,CAST('2007-05-08 12:35:29.123' AS datetime) AS 'datetime' 
  7. ,CAST('2007-05-08 12:35:29. 1234567 +12:15' AS datetime2(7)) AS 'datetime2' 
  8. ,CAST('2007-05-08 12:35:29.1234567 +12:15' AS datetimeoffset(7)) AS 'datetime

熱詞搜索:

上一篇:如何監控及管理數據中心網絡?
下一篇:云計算到來 IT部門還有多少事可做

分享到: 收藏
国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区
久久99日本精品| 成人国产免费视频| 蜜桃av一区二区在线观看| 亚洲二区在线观看| 免费日韩伦理电影| 国产不卡视频一区二区三区| 成人av电影在线观看| 18欧美亚洲精品| 香蕉久久夜色精品国产使用方法| 日韩欧美国产小视频| www亚洲一区| 亚洲国产日韩av| 国产91丝袜在线观看| 欧美性猛交一区二区三区精品| 美国十次综合导航| 成人国产视频在线观看| 欧美一区二区三区视频在线观看| 2023国产精品| 午夜激情一区二区| 成人激情小说网站| 国产一区二区女| 欧美日韩视频专区在线播放| 国产精品国产三级国产aⅴ入口| 亚洲成人免费视| 欧美视频在线一区二区三区| 久久精品日产第一区二区三区高清版| 亚洲综合小说图片| 色婷婷av一区二区三区gif | 国产欧美精品一区二区色综合| 亚洲一卡二卡三卡四卡无卡久久 | 日韩午夜激情视频| 午夜不卡av免费| 欧美一卡2卡三卡4卡5免费| 亚洲最新视频在线观看| 91丨九色丨尤物| 亚洲人一二三区| 99re热这里只有精品免费视频| 国产欧美日韩亚州综合| 粉嫩aⅴ一区二区三区四区五区| 91麻豆精品国产91久久久使用方法| 亚洲日本丝袜连裤袜办公室| 色综合天天综合网国产成人综合天 | 欧美一级一区二区| 国产精品中文有码| 中文字幕在线不卡视频| 91丨九色丨国产丨porny| 亚洲天堂a在线| 欧美猛男超大videosgay| 久久国产夜色精品鲁鲁99| 欧美一级专区免费大片| 成人伦理片在线| 《视频一区视频二区| 欧美一区二区三区男人的天堂| 久久不见久久见免费视频7 | 精品无人码麻豆乱码1区2区| 国产午夜三级一区二区三| 91在线观看一区二区| 日韩av电影免费观看高清完整版 | 1000部国产精品成人观看| 777奇米成人网| 91日韩精品一区| 久久99精品国产.久久久久| 国产调教视频一区| 欧美电影免费观看高清完整版在| 成人av网站在线观看免费| 毛片一区二区三区| 中文字幕在线免费不卡| www精品美女久久久tv| 欧美精品一卡二卡| 99精品视频在线免费观看| 欧美视频日韩视频| 在线视频国内自拍亚洲视频| 国产成人精品亚洲日本在线桃色 | 久久久久久电影| 欧美丰满一区二区免费视频 | 国内精品久久久久影院一蜜桃| 欧美麻豆精品久久久久久| 色综合色综合色综合色综合色综合| 久久国产精品第一页| 麻豆精品蜜桃视频网站| 午夜影院久久久| 另类的小说在线视频另类成人小视频在线| 亚洲大片免费看| 午夜精品久久久久久久久| 五月综合激情网| 久久精品国产77777蜜臀| 欧美成人bangbros| 国产亚洲婷婷免费| 中文字幕精品一区二区精品绿巨人| 久久综合久久鬼色中文字| 精品在线亚洲视频| 国产精品1区2区| 在线观看中文字幕不卡| 欧美日韩国产综合久久| 日韩美女在线视频| 国产福利电影一区二区三区| www.日本不卡| 欧美一级国产精品| 亚洲视频免费看| 精品日韩一区二区三区免费视频| xf在线a精品一区二区视频网站| 自拍av一区二区三区| 天天影视色香欲综合网老头| 国产福利一区二区三区| 国产精品女主播在线观看| 久久精品在线免费观看| 91在线视频18| 国产午夜亚洲精品羞羞网站| 亚洲高清三级视频| 91免费版在线| 国产免费久久精品| 国产曰批免费观看久久久| 免费观看日韩电影| 欧美喷潮久久久xxxxx| 亚洲男人天堂一区| 丰满少妇久久久久久久| 久久久久久黄色| 久久女同性恋中文字幕| 奇米色一区二区| 日韩一区二区三区av| 日韩一级大片在线观看| 亚洲国产精品影院| 欧美做爰猛烈大尺度电影无法无天| 国产精品久久二区二区| av电影在线观看一区| 成人免费一区二区三区视频 | 精品在线播放免费| 精品剧情在线观看| 国产精品一区二区久久精品爱涩| 久久亚洲影视婷婷| 国产激情偷乱视频一区二区三区| 精品国产一区二区三区不卡 | 欧美一级黄色片| 久久成人羞羞网站| 欧美国产一区视频在线观看| 成人18精品视频| 99这里都是精品| 肉色丝袜一区二区| 精品国产凹凸成av人导航| 国产精品1区2区| 亚洲一卡二卡三卡四卡五卡| 日韩一级黄色大片| 色综合天天综合色综合av| 亚洲国产成人va在线观看天堂| 91精品国产色综合久久| 成人精品视频一区二区三区尤物| 国产制服丝袜一区| 精品久久久久99| 91成人看片片| 国产在线不卡一卡二卡三卡四卡| 亚洲人成在线观看一区二区| 欧美日韩午夜在线| 99麻豆久久久国产精品免费| 久久99国产精品久久| 免费三级欧美电影| 67194成人在线观看| 91丨porny丨国产| 成人高清视频在线| 国产综合色在线| 美女视频一区二区三区| 亚洲综合一区二区| 亚洲品质自拍视频| 国产精品国产三级国产普通话三级| 欧美一区欧美二区| 欧美三级电影在线看| 99精品视频一区| 99国产欧美另类久久久精品| 99综合电影在线视频| 成人黄色a**站在线观看| 日本aⅴ免费视频一区二区三区| 欧美丝袜丝交足nylons| 国产一区二区调教| 大白屁股一区二区视频| 国产精品99久久久久久久女警 | 国产精品二三区| 亚洲国产精品久久人人爱| 精品国产免费人成在线观看| 久久一留热品黄| 中文字幕精品在线不卡| 亚洲欧美在线aaa| 亚洲五码中文字幕| 日韩欧美激情四射| 久久影视一区二区| 国产精品国产精品国产专区不片| 日韩毛片视频在线看| 日本不卡一区二区三区高清视频| 另类小说一区二区三区| 国产69精品久久久久毛片| 91成人网在线| 日本一区二区成人在线| 亚洲国产精品久久人人爱蜜臀| 极品少妇xxxx精品少妇| 91片在线免费观看| 26uuu另类欧美亚洲曰本| 日韩一区在线播放| 久久er精品视频| 在线精品视频一区二区三四| 国产情人综合久久777777| 三级精品在线观看| 欧美在线视频全部完|