91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

oracle索引監控-----未使用的索引

發布時間:2020-08-04 17:23:46 來源:ITPUB博客 閱讀:142 作者:hadba 欄目:關系型數據庫

oracle索引監控-----未使用的索引


oracle索引是用來優化DML處理速度,但是索引是會占用表空間,有時會占用比被索引表占用還要多的表空間。所以,索引監控未使用索引就顯得很重要。

    

打開某個索引監控:

alter index owner.index_name monitoring usage;

    

關閉某個索引監控:

alter index owner.index_name nomonitoring usage;

    

在v$object_usage視圖中包含有索引監控的使用信息。下面v$object_usage在oracle中的ddl語句:

create or replace view sys.v$object_usage

(index_name, table_name, monitoring, used, start_monitoring, end_monitoring)

as

select io.name, t.name,

       decode(bitand(i.flags, 65536), 0, 'NO', 'YES'),

       decode(bitand(ou.flags, 1), 0, 'NO', 'YES'),

       ou.start_monitoring,

       ou.end_monitoring

from sys.obj$ io, sys.obj$ t, sys.ind$ i, sys.object_usage ou

where io.owner# = userenv('SCHEMAID')-----當前用戶的索引

 and i.obj# = ou.obj#

 and io.obj# = ou.obj#

 and t.obj# = i.bo#;

      


這個試圖只能查當前登錄數據庫的用戶所創建的索引。

所以我們可以依葫蘆畫瓢,自己寫sql語句。不過你必須要有相應的權限才行,具體權限自己加就行了。

只要是這幾個表的查詢權限(sys.obj$, sys.obj$, sys.ind$, sys.object_usage)。

sql略去。。。



alter index INDEX_USER monitoring usage;

select table_name,index_name,used from v$object_usage; 



alter index pk_emp nomonitoring usage;




select * from v$object_usage;

只是當前用戶下有效,只能看到當前用戶下的監視索引。




SQL> COL INDEX_NAME FOR A20       

SQL> COL TABLE_NAME FOR A10

SQL> COL MONITORING FOR A10

SQL> COL USED FOR A10

SQL> COL START_MONITORING FOR A20

SQL> COL END_MONITORING FOR A20

SQL> SELECT * FROM V$OBJECT_USAGE;



select z.name||'.'||io.name, t.name,

       decode(bitand(i.flags, 65536), 0, 'NO', 'YES'),

       decode(bitand(ou.flags, 1), 0, 'NO', 'YES'),

       ou.start_monitoring,

       ou.end_monitoring

from sys.obj$ io, sys.obj$ t, sys.ind$ i, sys.object_usage ou,sys.user$ z

Where  i.obj# = ou.obj#

and io.obj# = ou.obj#  and io.owner#=z.user#

and t.obj# = i.bo#  

Order By 4 Desc,2 Desc; 



CREATE OR REPLACE VIEW SYS.V$ALL_OBJECT_USAGE

(

OWNER,

INDEX_NAME,

TABLE_NAME,

MONITORING,

USED,

START_MONITORING,

END_MONITORING

)

AS

select u.name, io.name, t.name,

decode(bitand(i.flags, 65536), 0, 'NO', 'YES'),

decode(bitand(ou.flags, 1), 0, 'NO', 'YES'),

ou.start_monitoring,

ou.end_monitoring

from sys.obj$ io, sys.obj$ t, sys.ind$ i, sys.object_usage ou, sys.user$ u

where i.obj# = ou.obj#

and io.obj# = ou.obj#

and t.obj# = i.bo#

and io.owner# = u.user#;



COMMENT ON TABLE SYS.V$ALL_OBJECT_USAGE IS 'Record of all index usage';

GRANT SELECT ON SYS.V$ALL_OBJECT_USAGE TO "PUBLIC";

CREATE PUBLIC SYNONYM V$ALL_OBJECT_USAGE FOR SYS.V$ALL_OBJECT_USAGE;


V$OBJECT_USAGE

You can use this view to monitor index usage. The view displaysstatistics about index usage gathered from the database. Allindexes that have been used at least once can be monitored anddisplayed in this view.



注意:

 

1、$object_usage只包括當前用戶所擁有索引的使用記錄,即索引的創建者或者是索引的擁有者(owner),已這個用戶登錄后,看到的是此用戶下擁有的索引在整個數據庫的使用情況。如果使用了該索引,視圖V$OBJECT_USAGE的字段USED會標成YES。否則是NO。當然首先是這些索引被啟用使用監視。SQL>alter index index_test_pk monitoring usage;

 

2、如果需要查出所有用戶所擁有索引的使用記錄,使用下面的sql,這個sql來自DBA日記:

SQL> select u.name owner, io.name index_name, t.nametable_name,

decode(bitand(i.flags, 65536), 0, 'NO', 'YES') monitoring,

decode(bitand(ou.flags, 1), 0, 'NO', 'YES')used,ou.start_monitoring

start_monitoring,ou.end_monitoring end_monitoring

from sys.user$ u, sys.obj$ io, sys.obj$ t, sys.ind$ i,sys.object_usage

ou where i.obj# = ou.obj# and io.obj# = ou.obj# and t.obj# =i.bo#

and u.user# = io.owner#;

--------------------- 


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

聊城市| 木兰县| 闵行区| 崇左市| 芷江| 清涧县| 雅安市| 老河口市| 胶南市| 清徐县| 家居| 邵阳市| 黔西| 天峨县| 昌吉市| 定南县| 甘德县| 镇江市| 察雅县| 海兴县| 建湖县| 南澳县| 金昌市| 大城县| 乌审旗| 铜陵市| 康平县| 太仓市| 临汾市| 犍为县| 怀化市| 五寨县| 油尖旺区| 桂阳县| 鄂尔多斯市| 丰城市| 乌拉特后旗| 彩票| 花垣县| 中宁县| 南安市|