成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

你的數(shù)據(jù)庫索引是否真的起作用了?

數(shù)據(jù)庫
為了加快你的查詢,增加正確的索引是必不可少的。 但是過了一段時間,當(dāng)你的系統(tǒng)增長了,你可能會發(fā)現(xiàn)自己大量的索引導(dǎo)致數(shù)據(jù)庫的寫操作變慢 -- 由于每一次對表的寫操作,都需要在事務(wù)中更新索引。

為了加快你的查詢,增加正確的索引是必不可少的。 但是過了一段時間,當(dāng)你的系統(tǒng)增長了,你可能會發(fā)現(xiàn)自己大量的索引導(dǎo)致數(shù)據(jù)庫的寫操作變慢 -- 由于每一次對表的寫操作,都需要在事務(wù)中更新索引。

也許,五年后, 你的數(shù)據(jù)庫(和你的查詢)在某種方式中進化,不再需要一些索引了。例如,有一些明顯的情況下,這兩個索引是多余的:

  1. -- 原設(shè)計  
  2. CREATE INDEX ON customer (first_name); 
  1. -- 5年后  
  2. CREATE INDEX ON customer (first_name, last_name); 

但在許多其他情況下,事情并沒有那么明顯。例如…

  • 你可能添加了一個在外鍵上的索引,但隨著表的增長,你的數(shù)據(jù)庫開始運行更多的哈希聯(lián)接,而不是嵌套循環(huán)聯(lián)接,這種情況下索引并沒有被使用。
  • 或者,你已經(jīng)完全停止查詢姓/名。
  • 或者你已經(jīng)開始使用一個比實際名稱更具選擇性的謂詞。
  • 或者你的客戶突然都叫史密斯。

[[204949]]

每個人都叫史密斯-倒霉的索引!

如果你的索引不再被使用,你可以(并且應(yīng)該)刪除它們。

但如何找到未使用的索引

如果你使用的是Oracle數(shù)據(jù)庫,并且你訪問的是生產(chǎn)系統(tǒng),實際上有一個非常好的方法來查詢診斷表,以便知道在游標(biāo)緩存中是否有任何查詢,當(dāng)前正在使用你的索引。只要運行:

  1. SELECT sql_fulltext 
  2. FROM v$sql 
  3. WHERE sql_id IN ( 
  4.     SELECT sql_id 
  5.     FROM v$sql_plan 
  6.     WHERE (object_owner, object_name) 
  7.      = (('OWNER''IDX_CUSTOMER_FIRST_NAME')) 
  8. ORDER BY sql_text; 

這個查詢做了什么?它運行游標(biāo)緩存中的所有SQL語句(V$SQL)并檢查他們每一個是否在游標(biāo)緩存(v$sql_plan)訪問索引中存在任何執(zhí)行計劃元素。完成。

當(dāng)然,如果上述查詢沒有返回任何結(jié)果,這并不意味著沒有人使用你的索引。可能還有一個非常罕見的查詢,一年只會發(fā)生一次,它被游標(biāo)緩存清除了。

但是如果你將上述查詢作為一個工作運行一段時間,你就可以得出這樣的結(jié)論:如果這個查詢不返回任何行,你的索引可能將不再需要了。

我能發(fā)現(xiàn)不需要的索引嗎?

當(dāng)然!運行一個類似的查詢,列出沒有引用V $ sql_plan表的所有引用:

  1. SELECT owner, index_name 
  2. FROM all_indexes 
  3. WHERE owner = 'OWNER' 
  4. AND (owner, index_name) NOT IN ( 
  5.   SELECT object_owner, object_name 
  6.   FROM v$sql_plan 
  7.   WHERE object_owner IS NOT NULL 
  8.   AND object_name IS NOT NULL 
  9. ORDER BY 1, 2 

同樣,這并不是說你的索引將永遠(yuǎn)不會被使用,只是它們最近還沒有被使用過。現(xiàn)在,我不會真的給你展示使用上述語句的查詢,在PL/SQL循環(huán)中運行其結(jié)果和使用EXECUTE IMMEDIATE刪除所有的索引,因為你可能在你的生產(chǎn)環(huán)境中嘗試。但是,以防萬一你想嘗試,這里有一個提示BEGIN

  1. BEGIN 
  2.   FOR i IN (/* above query here */) LOOP 
  3.     EXECUTE IMMEDIATE  
  4.      'DR0P INDEX "' || i.owner || '"."' || i.index_name || '"'
  5.   END LOOP; 
  6. END

但正如我說的。不要真的這樣做!

責(zé)任編輯:武曉燕 來源: 可譯網(wǎng)
相關(guān)推薦

2022-12-01 08:09:05

SQLOracleSPM

2019-08-05 15:05:35

2024-11-11 14:45:34

2011-03-04 13:47:12

專利數(shù)據(jù)庫

2010-09-03 12:20:54

數(shù)據(jù)庫

2010-09-16 08:38:19

數(shù)據(jù)庫索引

2020-12-07 11:05:21

HttpClient代碼Java

2009-09-15 13:04:56

Linq更新數(shù)據(jù)

2018-07-19 14:01:23

數(shù)據(jù)庫索引MySQL

2018-12-27 10:46:20

數(shù)據(jù)庫工程師DBA

2011-03-16 08:54:45

Oracle數(shù)據(jù)庫索引

2017-02-08 11:00:50

數(shù)據(jù)庫索引類型

2022-11-28 09:06:40

Oracle數(shù)據(jù)庫MySQL

2021-07-21 10:10:14

require前端代碼

2021-11-08 10:00:19

require前端模塊

2021-10-20 06:58:11

SQL數(shù)據(jù)庫程序員

2020-01-14 10:37:38

存儲DateTime數(shù)值

2018-03-27 08:46:01

數(shù)據(jù)庫NoSQLredis

2013-10-08 09:54:41

數(shù)據(jù)庫安全數(shù)據(jù)庫管理

2021-11-01 23:57:03

數(shù)據(jù)庫哈希索引
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产成人高清视频 | 欧美精品国产精品 | 视频在线一区二区 | 国产ts一区 | 国产一区二区自拍 | 中国免费黄色片 | 国产三区在线观看视频 | 国产精品美女久久久久aⅴ国产馆 | 午夜视频一区二区 | 国产精品自产av一区二区三区 | 亚洲成人精品在线 | 欧美视频xxx | 91在线播 | 亚洲综合在线视频 | 精品久久久久久久人人人人传媒 | 精品久久久久久亚洲精品 | 久久精品成人一区 | www.9191.com| 在线播放亚洲 | 亚洲一区二区三区在线 | 性一交一乱一透一a级 | 亚洲毛片在线 | 精品福利在线视频 | 免费成人在线网站 | 天天躁日日躁狠狠的躁天龙影院 | 久久综合九色综合欧美狠狠 | 成人国产在线视频 | 国产一区二区三区视频在线观看 | 久久精品在线免费视频 | 国产精品99久久久久久宅男 | 日韩午夜精品 | 最新黄色在线观看 | 日韩成人免费视频 | 在线观看国产 | 一区二区三区四区在线视频 | 日韩成年人视频在线 | 五月激情婷婷在线 | 色爱综合网 | 欧美福利在线 | a级免费视频 | 亚洲色图插插插 |