主頁 > 知識庫 > SQL Server 索引介紹

SQL Server 索引介紹

熱門標(biāo)簽:海南自動外呼系統(tǒng)價格 沈陽智能外呼系統(tǒng)代理 松原導(dǎo)航地圖標(biāo)注 九鹿林外呼系統(tǒng)怎么收費 滄州營銷外呼系統(tǒng)軟件 創(chuàng)業(yè)電銷機(jī)器人 浙江地圖標(biāo)注 電銷機(jī)器人虛擬號碼 舞鋼市地圖標(biāo)注app

一,索引的概述

1,概念: 數(shù)據(jù)庫索引是對數(shù)據(jù)表中一個或多個列的值進(jìn)行排序的結(jié)構(gòu),就像一本書的目錄一樣,索引提供了在行中快速查詢特定行的能力.

2,優(yōu)缺點:

2.1優(yōu)點: 1,大大加快搜索數(shù)據(jù)的速度,這是引入索引的主要原因.

2,創(chuàng)建唯一性索引,保證數(shù)據(jù)庫表中每一行數(shù)據(jù)的唯一性.

3,加速表與表之間的連接,特別是在實現(xiàn)數(shù)據(jù)的參考完整性方面特別有意義.

4,在使用分組和排序子句進(jìn)行數(shù)據(jù)檢索時,同樣可以減少其使用時間.

2,2缺點: 1,索引需要占用物理空間,聚集索引占的空間更大.

2,創(chuàng)建索引和維護(hù)索引需要耗費時間,這種時間會隨著數(shù)據(jù)量的增加而增加.

3,當(dāng)向一個包含索引的列的數(shù)據(jù)表中添加或者修改記錄時,SQL server 會修改和維護(hù)相應(yīng)的索引,這樣增加系統(tǒng)的額外開銷,降低處理速度。

3,索引的分類:

1,按存儲結(jié)構(gòu)可分為:

a,聚集索引:指物理存儲順序與索引順序完全相同,它由上下兩層組成,上層為索引頁,下層為數(shù)據(jù)頁,只有一種排序方式,因此每個表中只能創(chuàng)建一個聚集索引。

b,非聚集索引:指存儲的數(shù)據(jù)順序一般和表的物理數(shù)據(jù)的存儲結(jié)構(gòu)不同。通過下表我們可以分析出:(其中在學(xué)號上建立非聚集索引)

2,根基索引鍵值是否唯一,可以判定是否為唯一索引;基于多個字段的組合創(chuàng)建索引的為組合索引。二,索引的操作:

1,創(chuàng)建:(1),原則:a,只有表的所有者可以在同一個表中創(chuàng)建索引;

b,每個表中只可以創(chuàng)建一個聚集索引;

c,每個表中最多可以創(chuàng)建249個非聚集索引;

d,在經(jīng)常查詢的字段上建立索引;

e,定義text,image和bit數(shù)據(jù)類型的裂傷不能創(chuàng)建索引;

f,在外鍵列上可以創(chuàng)建索引,主鍵上一定要有索引;

g,在那些重復(fù)值比較多的,查詢較少的列上不要建立索引。

(2),方法:a,使用SQL server Management Studio創(chuàng)建索引。

b,使用T-SQL語句中的create Index語句創(chuàng)建索引

c,使用Create table或者alter Table語句為表列定義主鍵約束或者唯一性約束時,會自動創(chuàng)建主鍵索引和惟一索引。

這里說說T-sql語句創(chuàng)建索引:

語法:

復(fù)制代碼 代碼如下:
create relational index create[unique][clustered|nonclustered] index index_name onobject>(cloumn[asc|desc][,……n]) [include (column_name[,……n])] [with(relational_index_option>[,……n])] [onfilegroup_name]

說明:1,include (column_name[,……n])指定要添加到非聚集索引的葉級別的非鍵列。

2,on filegroup_name,為指定文件組創(chuàng)建指定索引。

例如:在course表中,對“課程代號”列創(chuàng)建聚集索引zindex.

復(fù)制代碼 代碼如下:
use db_student create clustered index zindex on course(課程代號)


2,查看索引:(1),使用SQL ServerManagement Studio查看索引信息

(2),使用系統(tǒng)存儲過程查詢索引信息,用SP_helpindex可以返回表中的所有索引信息

例如:查看course表的索引信息

use db_student execsp_helpindex course[/code] 


3,修改索引:

(1),在SQL Server Management Studio 中修改索引

(2),使用Alter Index語句修改索引

在這里為大家舉一個例子:

在course數(shù)據(jù)表中,修改所有的索引,并指定選項

復(fù)制代碼 代碼如下:
use db_student alterindex all on course rebuild with (fillfactor=80,sort_in_tempdb=on,statistics_norecompute=on)


4,刪除索引:

(1),使用SQL Server Management Studio 刪除索引

(2),使用Drop index語句刪除索引

例如:在course表中,刪除zindex索引

復(fù)制代碼 代碼如下:
use db_student drop index course.zindex


三,索引的分析和維護(hù):

分析:1,使用showplan 語句

語法:set showplan_all{on|off},set showplan_next{on|off}

例子:顯示表course的課程代號,課程類型,課程內(nèi)容,并顯示查詢過程

復(fù)制代碼 代碼如下:
use db_student set showplan_all on select 課程代號,課程類型 課程內(nèi)容 from course where 課程內(nèi)容='loving'


2,使用statistics io語句

語法:statistics io{on|off} on和off分別為顯示和不顯示,使用方法和上一樣。

維護(hù): 1,使用dbcc showcontig語句,顯示指定表的數(shù)據(jù)和索引的碎片信息。當(dāng)對表中進(jìn)行大量修改或添加數(shù)據(jù)后,應(yīng)該執(zhí)行此語句查看有無碎片。

語法:dbcc showcontig[{table_name|table_id|view_name|view_id},index_name|index_id] with fast

2,使用dbcc dbreindex語句,意思是重建數(shù)據(jù)庫中表的一個或多個索引。

語法:

復(fù)制代碼 代碼如下:
dbcc dbreindex (['database.owner.table_name'[,index_name[,fillfactor]]]) [withno_infomsgs]

說明: database.owner.table_name,重新建立索引的表名

index_name,是要重建的索引名

fillfactor,要創(chuàng)建索引時每個索引頁上要用于存儲數(shù)據(jù)的空間百分比。

with no_infomsgs,禁止顯示所有信息性消息

3,使用dbcc indexdefrag,整理指定的表或視圖的聚集索引和輔助索引碎片。

語法:

復(fù)制代碼 代碼如下:
dbcc indexdefrag ({database_name|database_id|0},{table_name|table_id|'view_name'|view_id},{index_name|index_id}) with no_infomsgs


總結(jié),只有我們對索引有了充分了熟悉;我們掌握了索引的增刪改查四項基本操作,學(xué)會利用SQL Server ManagerSdudio去實現(xiàn)這些功能,和學(xué)會利用T-SQL語句去實現(xiàn)(自我感覺利用SQL Server Manager Sdudio 簡單一些);當(dāng)然還要懂得學(xué)會分析和維護(hù)索引,這樣才會更好的讓它為咱們服務(wù)!

您可能感興趣的文章:
  • sqlserver索引的原理及索引建立的注意事項小結(jié)
  • SQL Server2014 哈希索引原理詳解
  • SqlServer索引的原理與應(yīng)用詳解
  • SQLSERVER全文目錄全文索引的使用方法和區(qū)別講解
  • SQL Server 聚集索引和非聚集索引的區(qū)別分析
  • SQLSERVER 創(chuàng)建索引實現(xiàn)代碼
  • SQLSERVER聚集索引和主鍵(Primary Key)的誤區(qū)認(rèn)識
  • sqlserver 索引的一些總結(jié)
  • SQL Server全文索引服務(wù)
  • SQL Server索引的原理深入解析

標(biāo)簽:日喀則 寶雞 ???/a> 公主嶺 西藏 商洛 咸寧 臺灣

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《SQL Server 索引介紹》,本文關(guān)鍵詞  SQL,Server,索引,介紹,SQL,Server,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《SQL Server 索引介紹》相關(guān)的同類信息!
  • 本頁收集關(guān)于SQL Server 索引介紹的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章