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

SQL Server設定過濾條件提高索引效率

數據庫 SQL Server
以下的文章主要向大家愛描述的是SQL Server設定過濾條件對索引進行效率的提高,以下就是文章的主要內容的描述。

主要是想大家講述的是通過SQL Server設定過濾條件來對索引進行提高的實際操作方案,這種獨特的數據庫優化方法也是具有自己比較雨中不同的一面,下面大家一起來學習一下。

低碳指數:在這里為了方便計算和直觀,我們以Intel至強X7500處理器的TDP為標準計算能耗(TDP=130W/h=2.167W/m=0.036W/s)。另外根據中國林業局的數據,一棵樹一天吸收二氧化碳量為5.023kg,每一度電產生0.785公斤二氧化碳。

如果按照本文方法優化后數據庫執行時間由27秒縮減到14秒,也就是單位時間少47.8%的能量消耗。那么在一天里將減少1.486kw電能消耗,約合1.167kg二氧化碳排放,按我們的計算是一天減少0.232棵樹二氧化碳吸收量。

51CTO數據庫頻道向您推薦《數據庫性能優化與調試》和《SQL Server 2008/2005全解》專題,以便于您更好的理解本文。

SQL Server設定過濾條件提高索引效率

優秀的索引是SQL Server數據庫性能的關鍵,然而高效的索引都是經過精心設計而成的。眾所周知,主鍵是儲存數據對象的唯一標識,如果數據表中沒有聚簇索引,為了維護主鍵的唯一性,SQL Server數據庫在默認情況下將為主鍵創建聚簇索引(Clustered index),除非用戶特別指定將索引創建為非聚簇索引(Non-clustered index)。

毫無疑問,我們應當為頻繁訪問的數據創建聚簇索引,當然頻繁訪問的字段應當經過詳細的分析和慎重選擇,并且索引值應當盡可能短。提到創建索引,大家往往首先想到主鍵,但是主鍵的數據并不一定被頻繁訪問,而且很多時候為了保證主鍵的唯一性,主鍵的數值往往不是很短。

比如我們經常會選擇全局唯一標識符(GUID)類型作為主鍵的數據類型,唯一標識符的長度一般是16個字節,就長度而言,這種數據類型并不是最理想的聚簇索引選項,在這種情況下,可以為主鍵創建非聚簇索引,因為主鍵值在WHERE語句中用來查詢特定的記錄是非常高效的,創建非聚簇索引可以將查詢的效率再上一個臺階。如果您選擇了整型作為主鍵的數據類型,那就可以考慮將為主鍵生成聚簇索引。

SQL Server 2008為我們提供了另外一種索引——SQL Server設定過濾條件索引(Filtered index),一個設定過濾條件索引是一個特殊的非聚簇索引,它是某些字段的特定子集。換句話說,設定過濾條件索引是基于一部分選定的字段生成的。

比如說,在銷售業績數據表中,分公司所在城市的數據存儲在City字段,如果我們創建一個非聚簇索引,那么所有的分公司所在的城市,都會被納入索引當中。但是如果我們使用設定過濾條件索引,我們就可以只選擇一部分城市被索引,比如北京,上海和廣州,代碼如下:

CREATE NONCLUSTERED INDEX FilteredCities ON Sales(City) WHERE City IN ('北京','上海','廣州') 與常規索引的區別在于,我們使用了WHERE語句來設定我們的過濾條件。假定公司的絕大部分收入都是來自于這三個城市的,那么我們的數據庫查詢會經常訪問到在這三個城市產生的銷售記錄,在這種情況下,設定過濾條件索引會占據較少的磁盤空間,因為只有City字段的數值是北京,上海和廣州的記錄會被索引,這些記錄只是整個銷售數據表格中的一部分。

利用設定過濾條件索引可以提升數據庫的性能,首先,只有被索引到記錄發生變化的時候,才需要重建索引。比如,某一條在北京發生的銷售記錄需要調整,在更新操作之后,索引也要隨之更新,這跟其他的索引是一樣的。

但如果發生在西安的銷售記錄發生了變化,無論添加或刪除了多少條記錄,我們之前建立的設定過濾條件索引都是不需要任何操作的,因為只有位于北京、上海和廣州分公司的銷售記錄有影響到這個索引。SQL Server設定過濾條件索引的另外一個優勢是可以減少磁盤讀寫操作,比如我們要查詢所有北京分公司的銷售記錄,那么使用剛才建立的設定過濾條件索引比常規的非聚簇索引要減少很多不必要的磁盤操作。

為了驗證SQL Server設定過濾條件索引所帶來的性能優勢,我們進行了對比測試。

首先,我們在VirtualBox虛擬機里安裝Windows Server 2008 R2與SQL Server 2008 R2中文版,順便說一下,我們安裝的都是可以試用180天的試用版,在微軟官方網站可以直接下載,而且現在試用版也不需要申請序列號了,在安裝過程中可以直接選擇安裝180天試用,就可以直接安裝,這位實驗和學習帶來了不少便利。

我們在數據庫中創建了一個500萬條記錄的銷售數據表,當然,銷售金額都是隨機產生的,而city字段,我們隨機產生1到9這9個不同的數字,然后再根據需要將它們在替換為不同的城市,在這個實驗中,我們把北京、上海和廣州的銷售記錄總比例設定為67%。

【編輯推薦】

  1. SQL Server刪除重復數據的方案有哪些?
  2. 對SQL Server 2005刪除用戶失敗的破解
  3. SQL Server還原數據庫操作步驟的詳細解析
  4. 轉移SQL Server數據的實現
  5. SQL Server數據庫的收縮與設定每日自動備份
責任編輯:佚名 來源: 清華大學出版社
相關推薦

2010-05-26 08:47:00

索引SQL Server

2010-06-30 13:49:02

SQL Server數

2010-07-07 10:02:46

SQL Server數

2010-11-12 11:25:44

SQL SERVER視

2010-07-15 15:42:38

2011-04-02 13:37:05

SQL Server 索引視圖

2011-04-01 15:36:24

索引SQL Server

2011-07-27 17:22:10

mysql極限測試索引

2010-10-25 10:55:11

Oracle函數索引

2011-08-10 15:11:23

SQL Server整理索引碎片重建索引

2010-07-26 09:34:24

SQL Server性

2011-03-21 15:51:27

SQL執行效率

2010-06-10 13:54:10

MySQL全文搜索

2010-09-16 13:42:55

SQL SERVER索

2010-07-20 13:20:26

SQL Server聚

2010-09-09 16:51:50

2021-01-14 05:13:34

倒排索引搜索

2010-04-07 17:45:22

Oracle位圖索引

2010-04-13 15:14:31

Oracle優化

2009-04-16 15:34:35

SQL Server
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕av一区二区三区 | 日韩精品一区二区三区中文在线 | 亚洲嫩草 | 免费成人高清在线视频 | 国产精品久久久久久久久免费高清 | 奇米久久 | 一区二区在线 | 欧美日韩一区在线观看 | 午夜视频网站 | 久久r精品 | 色婷婷久久久久swag精品 | 日韩精品一区二区三区中文字幕 | 欧美色综合| 国产视频第一页 | 亚洲成人网在线播放 | 久久久久久久久久一区二区 | 成人在线观看欧美 | 欧美日韩黄色一级片 | 午夜免费视频 | 久久久青草婷婷精品综合日韩 | 亚洲国产精品va在线看黑人 | 精品日韩在线 | 日韩视频区 | 国产一级在线 | 亚洲成人精品视频 | 91精品久久久久 | 99re热精品视频国产免费 | 51ⅴ精品国产91久久久久久 | 日韩在线一区二区 | 久久久国产一区 | 91亚洲国产成人久久精品网站 | 欧美亚洲国语精品一区二区 | 国产在线一区二区 | 毛片毛片毛片毛片 | 久久99精品视频 | 亚洲导航深夜福利涩涩屋 | 精品国产一区二区三区av片 | 农村妇女毛片精品久久久 | 国产精品成人一区二区 | 久久久久久国产精品免费免费狐狸 | 成人免费在线观看 |