SQL Server 2005 Query Optimizer 善用索引加快查詢效率 (參考實習課課本第 13 章)

Slides:



Advertisements
Similar presentations
ACCESS 入門 主講人 : 黃國倫 日期 :2002/11/14. Outline  ACCESS介紹  資料分析方法  建立ACCESS資料庫  ACCESS查詢功能  建立表單  進階查詢-SQL.
Advertisements

第 8 章 還原資料庫.
指導教授 ~ 張志勇 組員: 彭勇盛 陳信通 吳建賦
转正述职报告 乐恩公司 史航
題目:十六對一多工器 姓名:李國豪 學號:B
Excel資料庫分析 台灣微軟資深講師 王作桓.
LINQ 建國科技大學 資管系 饒瑞佶.
9/28號專題報告 Web網頁遊戲 曾建瑋.
PHP與MySQL 入門學習指南 凱文瑞克 著 第 24章 建立資料表與索引.
JAVA vs. SQL Server 建國科技大學 資管系 饒瑞佶 2013/4 V1.
連結資料庫 ACCESS MSSQL.
Q101 在701 SDX Linux上的標準安裝與使用程序v2
第 11 章 建立檢視表.
SQL Server 2005 Query Optimizer 善用索引加快查詢效率 (參考實習課課本第 13 章)
12 規劃與建立索引 12-1 索引的基礎 12-2 資料表的索引規劃 12-3 SQL Server自動建立的索引
2-3 基本數位邏輯處理※.
第八章 利用SELECT查詢資料.
資料庫管理 操作DBMS 指導教授:楊維邦  助教:廖皓翔.
資料庫操作.
應用軟體 本節重點: 應用軟體簡介 Word Excel PowerPoint 資料庫Acess.
第10章 SQL定義、操作與控制指令 10-1 SQL語言的基礎 10-2 SQL查詢工具 10-3 資料庫的實體資料模型
SQL Stored Procedure SQL 預存程序.
R教學 安裝RStudio 羅琪老師.
第七章: 建立資料表.
SQL語法.
Ch12 MySQL資料庫管理 網頁程式設計.
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A.
連結資料庫管理系統.
App Inventor2呼叫PHP存取MySQL
第二章 SPSS的使用 2.1 啟動SPSS系統 2.2 結束SPSS系統 2.3 資料分析之相關檔案 2.4 如何使用SPSS軟體.
資料庫程式設計 VB資料庫設計簡介 週次:6 建國科技大學 資管系 饒瑞佶.
Ch4.SQL Server 2005資料庫組成員元件介紹
雲端計算.
FTP檔案上傳下載 實務與運用.
Chap3 Linked List 鏈結串列.
第二次電腦實習課 說明者:吳東陽 2003/10/07.
Ch20. 計算器 (Mac 版本).
本院使用建教合作之輔仁大學 圖書館資料庫 設定方式說明
第 19 章 XML記憶體執行模式.
雲端計算.
網頁程式概論 建國科技大學資管系 饒瑞佶 2015/9 V1 2016/4 V2 2016/9 V3.
PHP與MySQL 入門學習指南 凱文瑞克 著 第 22 章 SQL 介紹與建立MySQL資料庫.
通讯录管理系统设计 常州工程职业技术学院 计算机技术系.
WinPXE 無硬碟系統 6.0 安裝說明 憶傑科技股份有限公司
期末考.
GridView.
GridView操作 (II).
讲课人:王璞 浙江工商职业技术学院.
如何使用Gene Ontology 網址:
DRC with Calibre 課程名稱:VLSI 報告人:黃家洋 日期: 改版(蔡秉均) 1.
線上MySQL測試資料庫 db4free.net (
第8章 索 引(Index) 8.1 索引概述 8.2 创建索引 8.3 修改和删除索引.
陣列與結構.
第11章 安全管理 教学提示:数据库安全是关系数据库中的非常重要的方面,包括了系统安全、数据安全、资源管理、用户管理、权限管理、角色管理、口令管理以及授权、认证、审计等相当多方面的内容。本章讲述有关数据库安全方面的知识。 数据库系统的安全性是每个数据库管理员都必须认真考虑的问题。SQL Server.
教育部特殊教育通報網 學生異動、接收操作說明.
SQL語法教學 2015/10/15 John.
第 4 章 認識 SQL 語言與資料型別.
1. 查詢個人電腦版本 1.進入控制台 2.點選“所有控制台項目” 3.點選“系統”.
Chapter 15 檔案存取 LabVIEW中的檔案存取函數也可將程式中的資料儲存成Excel或Word檔。只要將欲存取的檔案路徑位址透過LabVIEW中的路徑元件告訴檔案存取函數後,LabVIEW便可將資料存成Excel或Word檔;當然也可以將Excel或Word檔的資料讀入LabVIEW的程式中。
2018 Operating Systems 作業系統實習 助教:林欣穎 實驗室:720A.
資料表示方法 資料儲存單位.
国家“十一五”规划教材 数据库原理与应用教程(第3版).
資料結構與C++程式設計進階 期末考 講師:林業峻 CSIE, NTU 7/ 15, 2010.
Cloud Training Material- 事件 Sherman Wang
連結資料庫 MYSQL.
單元三:敘述統計 內容: * 統計量的計算 * 直方圖的繪製.
SQLite資料庫 靜宜大學資管系 楊子青.
Chapter 4 Multi-Threads (多執行緒).
Joining Multiple Tables
Develop and Build Drives by Visual C++ IDE
Presentation transcript:

SQL Server 2005 Query Optimizer 善用索引加快查詢效率 (參考實習課課本第 13 章) 第 11 章補充 SQL Server 2005 Query Optimizer 善用索引加快查詢效率 (參考實習課課本第 13 章)

本章提要 13-1 索引簡介 13-2 叢集索引與非叢集索引 13-3 Unique 與 Composite 索引 13-4 由系統自動建立的索引 13-5 建立索引的注意事項 13-6 使用 SQL Server Management Studio 管理工具建立索引 13-8 用 SQL 語法處理索引 13-9 檢視查詢的執行計劃

13-1 索引簡介 在資料庫中查詢一筆記錄時, 如果我們將所有的記錄一筆一筆做比對, 就如同要在一堆散亂的書籍中找一本書一樣, 是非常沒有效率的。若是能夠善用索引的功能, 將記錄依照順序排列整齊, 如此就能夠提高查詢的效率。 索引雖可加快搜尋的速度, 但並非資料表的每個欄位都需要建立索引。因為多了索引之後, 當新增、修改、或刪除記錄時, 除了要將異動存入資料表之外, 伺服器還必須付出時間來更新索引, 而且索引也會佔用儲存空間, 因此一般只會建立在經常用來做搜尋的欄位上 (例如經常用在 WHERE 子句中的欄位)。

索引的結構

13-2 叢集索引與非叢集索引 索引可分為叢集索引 (Clustered) 與非叢集索引 (Non-clustered) 二種。設定叢集索引時, 資料本身也會依照該索引的順序來存放, 例如一個資料表中的記錄如下:

叢集索引與非叢集索引 那麼將『ID』欄位設為叢集索引後 此資料表的內容便會自動依照 ID 的大小來排列:

13-3 Unique 與 Composite 索引 不管是叢集索引或非叢集索引, 皆可再依下列二種標準做分類: 索引值是否唯一: 如果索引值設為唯一 (不可重複), 則稱為唯一索引(Unique index), 此與資料表的 Primary key 特性類似。 是否只用單一欄位做索引: 如果您使用兩個或多個欄位組合起來做索引, 則稱為複合索引 (Compos i t e index)。如果複合索引同時也是唯一索引, 那麼多個欄位組合起來的值就不可重複, 但單獨的欄位則允許重複。

13-4 由系統自動建立的索引 在 SQL Server 中, 索引不一定要由資料庫設計者自己建立。如果在建立資料表時, 設定了 Primary key 或 UNIQUE 條件約束, SQL Server 就會自動幫我們建好索引。 UNIQUE 欄位 Primary key 欄位

UNIQUE 欄位 當資料表中有設為 UNIQUE 的欄位時, 則 SQL Server 會用此欄位自動建立一個非叢集索引的唯一索引, 以確保此欄位的唯一性。 查詢索引的分佈情形: dbcc show_statistics(QOPRODUCT,PK__QOPRODUCT__07F6335A) ; 檔案群或資料分割配置名稱: 指定索引要存放在哪一個檔案群組 (File group)。在建立資料庫 (CREATE DATABASE) 時, 每個資料庫都有一個預設的檔案群組稱為 PRIMARY, 另外使用者也可以自行定義新的檔案群組。

Primary key 欄位 當資料表中有設定 Primary key (主索引鍵) 時, 則 SQL Server 會在 Primary key 欄位建立一個叢集索引

13-5 建立索引的注意事項 在資料表中建立索引可以提高搜尋資料的效率, 但是建立索引是有一些限制要注意的。以下是 SQL Server 對索引的限制條件: 一個資料表中只能有一個叢集索引, 因為資料表會依照叢集索引來排列其內的記錄。在必要時,我們可以將多個欄位組合起來做為叢集索引。 一個索引所使用的欄位最多只能包括 16 個欄位, 而且 ntext、text、及 image 型別的欄位不能做為索引。

13-6 使用 SQL Server Management Studio 管理工具建立索引

使用 SQL Server Management Studio 管理工具建立索引

使用 SQL Server Management Studio 管理工具建立索引

使用 SQL Server Management Studio 管理工具建立索引

使用 SQL Server Management Studio 管理工具建立索引

13-8 用 SQL 語法處理索引 這一節我們要使用 SQL 語法來建立、重建與刪除索引。 建立索引的語法 刪除索引 修改或重建索引 (skip)

建立索引的完整語法(參考一下)

刪除索引 不可刪除的索引 資料表中有些特殊的索引是不能用上述語法刪除的, 那就是在資料表中設定 Primary key 或 UNIQUE 條件約束時, 由 SQL Server 自動產生的索引。

13-9 檢視查詢的執行計劃 如果想要看看在建立索引之後, 實際執行查詢時是否有使用到索引, 可以在輸入查詢的 SQL 敘述後, 按下工具列的顯示估計執行計劃鈕 , 便能檢視查詢的方式。我們以 13-6 節建立在員工資料表的姓名索引為例。筆者輸入以下敘述:

檢視查詢的執行計劃 敘述輸入完成後先不要執行查詢, 請按下工具列的顯示估計執行計劃鈕 :

檢視查詢的執行計劃 如果我們將員工資料表中的索引全部刪除, 然後再執行以上的查詢時:

使用索引加快查詢 我們以課本的例子來展示。 查詢選項請設定 statistics time 及 statistics io 如下, 再比較有加 V_NAME 與 P_PRICE 的索引後,p.444 及 p. 448 之 SQL 查尋效率: