
1.創(chuàng)建索引
在SQL語言中,建立索引使用CREATE INDEX語句,其一般格式如下:
CREATE [UNIQUE] [CLUSTER] INDEX<索引名>
ON <基本表名>(<列名>[<次序>],[,<列名>[<次序>]]...);
說明:
(1) UNIQUE規(guī)定索引的每一個索引值只對應(yīng)于表中唯一的記錄。
(2) CLUSTER規(guī)定此索引為聚集索引。所謂聚集索引是指索引項的順序與表中記錄的物理順序一致的。聚集索引對于那些經(jīng)常要搜索范圍值的列特別有效。使用聚集索引找到包含第一個值的行后,便可以確保包含后續(xù)索引值的行在物理相鄰。使用聚集索引能極大地提高查詢性能.省略CLUSTER則表示創(chuàng)建的索引為非聚集索引,非聚集索引與書本中的索引類似.數(shù)據(jù)存儲在一個地方,索引存儲在另一個地方,索引帶有網(wǎng)站制作指針指向數(shù)據(jù)的存儲位置。索引中的項目按索引鍵值的順序存儲,而表中的信息按另一種順序存儲(這可以由聚集索引規(guī)定)。
(3)<次序>:建立索引時指定列名的索引表是ASC(升序)或DESC(降序)。若不指定,默認為升序。
(4)本語句建立的索引的排列方式為:先以第一個列名值排序;該列值相同的記錄,則按下一列名排序。
【例3.8]在Student表的屬性列Sno上創(chuàng)建一個非聚集索引。
CREATE INDEX IDX_DNO_SNO
ON Student(Sno ASC);
【例3.91在Student表的屬性列Sname上創(chuàng)建一個聚集索引。
CREATE CLUSTER INDEX IDX_SNAME ON Student(Sname ASC);
2.刪除索引
雖然索引能提高查詢效率,但過多或不當(dāng)?shù)乃饕龝?dǎo)致系統(tǒng)低效。用戶在表中每加進一個索引,數(shù)據(jù)庫就要做更多的工作。過多的索引甚至?xí)?dǎo)致索引碎片,降低系統(tǒng)效率。因此,不必要的索引應(yīng)及時刪除,刪除索引的格式如下:
DROP INDEX <索引名>
說明:本語句將刪除定義的索引,該索引在數(shù)據(jù)字典中的描述也將被刪除。
【例3.10】刪除Student表的索引IDX_DNO_SNO。
DROP INDEX IDX DNO SNO;