程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL開發中容易忽視的一些小地方(五)

SQL開發中容易忽視的一些小地方(五)

編輯:關於SqlServer

背景:

索引分類:眾所周知,索引分為聚集索引和非聚集索引.

索引優點:加速數據查詢.

問題:然而我們真的清楚索引的應用嗎?你寫的查詢語句是否能充分應用上索引,或者說你如何設計你的索引讓它更高效?

經歷:以前本人只知道索引的好處,但是是否能夠真正讓它發揮作用,並無太多理論,為些本人做了些DEMO,來簡單說明下什麼情況下才能充分利用索引.

案例:

這裡建立一個學生表:有如下字段,此時表中沒有建立任何索引.CREATE TABLE [dbo].[student](
  [ID] [int] IDENTITY(1,1) NOT NULL,--學生ID
  [sUserName] [nchar](10) COLLATE Chinese_PRC_CI_AS NULL,--學生姓名
  [sAddress] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL,--學生地址
  [classID] [int] NULL,--學生所屬班級ID
  [create_date] [datetime] NULL CONSTRAINT [DF_student_create_date] DEFAULT (getdate()) --入校時間
) ON [PRIMARY]

業務需求:

查詢班級ID為9的所有學生的姓名和地址.

情況一:

--字段沒有建立任何索引

select sUserName,sAddress from student

where classID=9

執行計劃如下圖:

結論:在沒有任何索引的情況下,查詢會選擇全表掃描.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved