SQL SERVER規範 索引建立

2021-09-13 17:19:51 字數 1735 閱讀 2315

定義:

索引是乙個單獨的,儲存在磁碟上的資料結構,它們包含則對資料表裡所有記錄的引用指標,使用索引用於快速找出在某個或多個列中有某一特定值的行,對相關列使用索引是降低查詢操作時間的最佳途徑。索引包含由表或檢視中的一列或多列生成的鍵。

索引的優點主要有以下幾條:

(1).

通過建立唯一索引,可以保證資料庫表的每一行資料的唯一性。

(2).

可以大大加快資料的查詢速度,這也是建立索引的最主要的原因。

(3).

實現資料的參照完整性,可以速表和表之間的連線。

(4).

在使用分組和排序子句進行查詢時,也可以顯著減少查詢中分組和排序的時間。

索引不利的一面:

(1).

建立索引和維護索引要耗費時間,並且隨著資料量的增加所耗費的時間也會增加。

(2).

索引需要佔磁碟空間,除了資料表佔資料空間之外,每乙個索引還要佔一定的物理空間,如果有大量的索引,索引檔案可能比資料檔案更快達到做大檔案尺寸。

(3).

當對表中的資料進行增加,刪除和修改的時候,索引也要動態地維護,這樣就就降低了資料的維護速度。

建立索引:

create[unique] index idxname on tabname(col….) include(col.)

刪除索引:

drop index idxname

1.字元型別建議採用

varchar/nvarchar

資料型別 2.

金額貨幣建議採用

money

資料型別 3.

科學計數建議採用

numeric

資料型別 4.

自增長標識建議採用

bigint

資料型別   5.

時間型別建議採用為

datetime

資料型別 6.

每張表必須有主鍵 7.

不允許使用外來鍵,資料完整性由程式控制 8.

新加的表,所有字段禁止

null 9.

舊表新加字段,需要允許為

null

禁止在資料庫做複雜運算

禁止使用

select *

禁止在索引列上使用函式或計算

盡量少使用游標

禁止使用觸發器

禁止在查詢裡指定索引 變數

/引數/關聯字段型別必須與字段型別一致 限制

join個數

限制sql

語句長度及

in子句個數

盡量避免大事務操作

除非必要

select

語句都必須加上

nolock 使用

union all

替換union

查詢大量資料使用分頁或

top

not exists

替代not in

盡量避免使用

or運算子

增加事務異常處理機制

輸出列使用二段式命名格式

限制join個數

•單個sql

語句的表

join

個數不能超過5個

•過多的

join

個數會導致查詢分析器走錯執行計畫

過多join

在編譯執行計畫時消耗很大

SQL Server建立索引

什麼是索引 拿漢語字典的目錄頁 索引 打比方 正如漢語字典中的漢字按頁存放一樣,sql server中的資料記錄也是按頁存放的,每頁容量一般為4k 為了加快查詢的速度,漢語字 詞 典一般都有按拼音 筆畫 偏旁部首等排序的目錄 索引 我們可以選擇按拼音或筆畫查詢方式,快速查詢到需要的字 詞 同理,sq...

SQL Server建立索引

什麼是索引 拿漢語字典的目錄頁 索引 打比方 正如漢語字典中的漢字按頁存放一樣,sql server中的資料記錄也是按頁存放的,每頁容量一般為4k 為了加快查詢的速度,漢語字 詞 典一般都有按拼音 筆畫 偏旁部首等排序的目錄 索引 我們可以選擇按拼音或筆畫查詢方式,快速查詢到需要的字 詞 同理,sq...

SQL server 建立索引

排序 聚集索引 create clustered index inx entry stock bi on entry stock d entry stock bi 建立非聚集索引 create nonclustered index inx entry stock on entry stock d e...