SQL中如何避免書籤查詢

2021-09-08 04:53:42 字數 662 閱讀 5648

1、使用聚集索引

對於聚集索引,索引的葉子頁面和表的資料頁面相同。因此,當讀取聚集索引鍵列的值時,資料引擎可以讀取其他列的值而不需要任何導航。例如前面的區間資料查詢的操作,sqlserver通過b樹結構進行查詢是非常快速的。

把非聚集索引轉換為乙個聚集索引說起來很簡單。但是,這個例子和大部分可能遇到的情況下,這不可能做到,因為表已經有了乙個聚集索引。這個表的聚集索引恰好是主鍵。必須解除安裝掉所有的外來鍵約束,解除安裝並且重建為乙個非聚集索引。這不僅要考慮所涉及的工作,還可能嚴重地影響依賴於現有聚集索引的其他查詢。

2、使用覆蓋索引

例如select id,name frompersontenthousand where id <100

我們可以在id,name上面建個組合索引,這樣,由於非聚集索引上已經有了需要查詢的id和name列的資料,所以不在需要書籤查詢定位到基本表。

3、使用索引連線

如果覆蓋索引變得非常寬,那麼可能要考慮索引連線技術。索引連線技術使用兩個或更多索引之間的乙個索引交叉來完全覆蓋乙個查詢。因為索引連線技術需要訪問多餘乙個索引,它必須在所有索引連線中使用的索引上執行邏輯讀。因此,索引連線需要比覆蓋索引更高的邏輯讀數量。但是,因為索引連線所用的多個窄索引能夠比寬的覆蓋索引服務更多的查詢。所以索引連線也可以作為避免書籤查詢的一種技術來考慮。

oracle引數查詢避免SQL注入

前言。所謂sql注入,就是通過把sql命令插入到web 表單提交或輸入網域名稱或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的sql命令。具體來說,它是利用現有應用程式,將 惡意的 sql命令注入到後台資料庫引擎執行的能力,它可以通過在web表單中輸入 惡意 sql語句得到乙個存在安全漏洞的 上的...

sql注入方式及如何有效避免

首先提及sql注入這個題目,也許大家會笑笑,覺得這是一件比較低階的攻擊方式,但事實上,正是這種不屑,就可能會導致我們 資料庫伺服器被攻擊,甚至伺服器許可權都被提走,這種例子,以不鮮見。以下是我在寫orm時sql注入這塊,所研究的心得,分享給大家,有可能說的不對,還望大家指正。先來看下這段sql qu...

如何避免TreeView中Checked事件死迴圈

在treeview的aftercheck事件中新增處理 設定其它相關treenode的checked屬性。問題 通過 改變treenode.checked屬性同樣會觸發treeview.aftercheck事件。若節點a的狀態改變時需要自動改變節點b的選中狀態,且節點b的狀態改變時也需要自動改變節點...