第九章

使用Views和Indexes影響查詢率能

View

•是資料庫的物件,包含select結構

•是將先寫好的select架構存成表格

–簡化複雜的查詢結構

–簡化的數據庫用戶的認知

–限制存取數據

•create view view_name [(column1 [, column2…]) as select_statement [with check option]

•union可以用於create view合併來自多個查詢結果集

•create view view_name as select column_list from table_name union [all] select column_list from table_name

•允許其他人使用View,你必須賦予他們權限

•grant [ select | insert | update | delete | all ] on view_name to user_list

•通過View查詢數據,使用View的名稱,就好像它是一個表名

•select * from view_name

•如果要對View做insert、update和delete必需要在同一個table下才可以使用

•可以減化查詢

•限制資料的查詢

•檢查選項是否符合View的權限

•對insert和update的規範,以免新增或修改的資料,在View裡是無法被查閱的

•規則

•可以使用

–where

–group by

–distinct

–join

–view

–union

•不可以使用

–order by

–compute by

–select into

•sp_depends {table_name, view_name}

–查詢view與table的關系

•sp_help

–查詢相關資訊

•sp_helptext view_name

–查詢建立view的語法

•sp_rename old_view_name, new_view_name

–更改名稱

Indexes

•Table Scan

•table scan 是掃描讀取表中的每一行

•沒有它創建的任何索引的表,可以搜索只能通過table scan

•Indexes是數據庫物件,幫助服務器更迅速地找到數據

•建立

•create [unique] [clustered | nonclustered] index index_name on table_name (column1 [, column2])

•unique:值是否可以重覆

•clustered:資料會根據index排序

•nonclustered:

•index 和 data 是分開的

•實體資料不以index 來排序

•刪除

•drop index table_name, index_name

•Query Optimizer是一個Adaptive Server組件,決定執行查詢的最有效方式

–它搜索存取方法,需要的時間最少

•Query Optimizer 的選擇

–是否應使用index或table scan

–該index使用,如果有多個索引

•Query Optimizer 可以使用一個索引,只有當一個查詢引用索引列在where子句

•sp_helpindex table_name

–顯示有關指定資料表的Index信息

•sp_help table_name

–顯示有關指定資料表的信息

•sp_rename ‘table.old_index_name”, new_index_name

–更改index名稱