<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
索引設計不佳和缺少索引是提高資料庫和應用程式效能的主要障礙。 設計高效的索引對於獲得良好的資料庫和應用程式效能極為重要。 本索引設計指南包含關於索引體系結構的資訊,以及有助於設計有效索引以滿足應用程式需求的最佳做法。
就像一本書,書本末尾有一個索引,可幫助快速查詢書籍內的資訊。 索引是按順序排列的關鍵字列表,每個關鍵字旁邊是一組頁碼,這些頁碼指向可在其中找到每個關鍵字的頁面。
行儲存索引也一樣:它是按順序排列的值列表,每個值都有指向這些值所在的資料頁面的指標。 索引本身儲存在頁上,稱為索引頁。
索引是與表或檢視關聯的磁碟上或記憶體中結構,可以加快從表或檢視中檢索行的速度。 行儲存索引包含由表或檢視中的一列或多列生成的鍵。 對於行儲存索引,這些鍵以樹結構(B+ 樹)儲存,使資料庫引擎可以快速高效地找到與鍵值關聯的一行或多行。
行儲存索引將邏輯組織的資料儲存為包含行和列的表,物理上以行資料格式(稱為 行儲存1)儲存,或以名為列 儲存的列資料格式儲存。
為資料庫及其工作負荷選擇正確的索引是一項需要在查詢速度與更新所需開銷之間取得平衡的複雜任務。 如果基於磁碟的行儲存索引較窄,或者說索引關鍵字中只有很少的幾列,則需要的磁碟空間和維護開銷都較少。 而另一方面,寬索引可覆蓋更多的查詢。 您可能需要試驗若干不同的設計,才能找到最有效的索引。 可以新增、修改和刪除索引而不影響資料庫架構或應用程式設計。 因此,應試驗多個不同的索引而無需猶豫。
資料庫引擎的查詢優化器可在大多數情況下可靠地選擇最高效的索引。 總體索引設計策略應為查詢優化器提供可供選擇的多個索引,並依賴查詢優化器做出正確的決定。 這在多種情況下可減少分析時間並獲得良好的效能。
不要總是將索引的使用等同於良好的效能,或者將良好的效能等同於索引的高效使用。 如果只要使用索引就能獲得最佳效能,那查詢優化器的工作就簡單了。 但事實上,不正確的索引選擇並不能獲得最佳效能。 因此,查詢優化器的任務是隻在索引或索引組合能提高效能時才選擇它,而在索引檢索有礙效能時則避免使用它。
行儲存是儲存關係表資料的傳統方法。 “行儲存”是指基礎資料儲存格式為堆、B+ 樹(聚集索引)或記憶體優化表的表。 “基於磁碟的行儲存”排除了記憶體優化表。
瞭解資料庫、查詢和資料列的特徵可以幫助設計出最佳索引。
設計索引時,應考慮以下資料庫準則:
設計索引時,應考慮以下查詢準則:
設計索引時,應考慮以下列準則:
在確定某一索引適合某一查詢之後,可以選擇最適合具體情況的索引型別。 索引包含以下特性:
也可以通過SQL Server的設定選項自定義索引的初始儲存特徵以優化其效能或維護。 而且,通過使用檔案組或分割區方案可以確定索引儲存位置來優化效能。
定義索引時,請考慮索引鍵列的資料是按升序還是按降序儲存。CREATE INDEX、CREATE TABLE 和 ALTER TABLE 語句的語法在索引和約束中的各列上支援關鍵字 ASC(升序)和 DESC(降序):
當參照表的查詢包含用以指定索引中鍵列的不同方向的 ORDER BY 子句時,指定鍵值儲存在該索引中的順序很有用。 在這些情況下,索引就無需在查詢計劃中使用 SORT 運運算元。因此,使得查詢更有效。
檢索資料以滿足此條件需要將 Purchasing.PurchaseOrderDetail 表中的 RejectedQty 列按降序(由大到小)排序,並且將 ProductID 列按升序(由小到大)排序,比如:
SELECT RejectedQty, ((RejectedQty/OrderQty)*100) AS RejectionRate, ProductID, DueDate FROM Purchasing.PurchaseOrderDetail ORDER BY RejectedQty DESC, ProductID ASC; GO
此查詢的下列執行計劃顯示了查詢優化器使用 SORT 運運算元按 ORDER BY 子句指定的順序返回結果集。
如果使用與查詢的 ORDER BY 子句中的鍵列匹配的鍵列建立基於磁碟的行儲存索引,則無需在查詢計劃中使用 SORT 運運算元,從而使查詢計劃更有效。
CREATE NONCLUSTERED INDEX IX_PurchaseOrderDetail_RejectedQty ON Purchasing.PurchaseOrderDetail (RejectedQty DESC, ProductID ASC, DueDate, OrderQty); GO
再次執行查詢後,下列執行計劃顯示未使用 SORT 運運算元,而使用了新建立的非聚集索引。
覆蓋索引是針對非聚集索引的指定,它直接解析一個或幾個類似的查詢結果,而不存取其基表,並且不會引發查詢。 這意味著,由 SELECT 子句以及所有 WHERE 和 JOIN 引數返回的列都被索引所覆蓋。 當與表本身的行和列相比,如果索引足夠窄,那麼執行查詢的 I/O 可能會少得多,這意味著它是總列的一個真正子集。 如果選擇大型表的一小部分,請考慮覆蓋索引,其中的小部分是由一個固定謂詞定義,比如一個稀疏列,例如它只包含幾個非 NULL 值。
到此這篇關於SQL Server索引設計基礎知識詳解使用的文章就介紹到這了,更多相關SQL Server索引設計內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45