1. 程式人生 > >Oracle 使用analyze分析索引碎片

Oracle 使用analyze分析索引碎片

1、先分析索引,語句如下:
analyze index index_name validate structure
然後查詢 index_stats
select name, height, pct_used, del_lf_rows/lf_rows from index_stats;
DEL_LF_ROWS於LF_ROWS的比例 這是最基本的了
如果查詢結果中:
Height > 4
PCT_USER < 50
del_lf_rows/lf_rows > 0.2
則說明索引需要重建。

可以通過程式來實現該功能
注意:analyze index 和查詢index_stats 必須在同一個session中

create table MONITORINDEX
(
      INDEX_NAME  VARCHAR2(50),
      DEL_LF_ROWS NUMBER,
      LF_ROWS     NUMBER,
      RATE        NUMBER(4,2),
      MONITORDATE DATE default sysdate not null
)
create or replace procedure analyzeindex is
  v_sql varchar2(100);
begin
  for a in (select index_name from
all_indexes where owner = USER) loop v_sql := ' analyze index ' || a.index_name || ' validate structure';
execute immediate v_sql; insert into monitorindex (index_name, del_lf_rows, lf_rows, rate) select name, del_lf_rows, lf_rows, round(del_lf_rows * 100
/ (lf_rows + del_lf_rows), 2) from index_stats;
end loop; end analyzeindex;

相關推薦

Oracle 使用analyze分析索引碎片

1、先分析索引,語句如下: analyze index index_name validate structure 然後查詢 index_stats select name, height, pct_used, del_lf_rows/lf_rows f

oracle索引分析索引索引碎片整理

41.oracle索引,分析索引,索引碎片整理 概述 索引分為B樹索引和點陣圖索引。我們主要研究B樹索引,B樹索引如下圖(圖片源自網路):   索引是與表相關的一個可選結構,在邏輯上和物理上都獨立於表資料,索引能優化查詢,不能優化DM

Oracle索引碎片檢查及定期重建常用表的索引

索引 分區表 activity compute lin pipe stat turn gin 轉載地址:http://www.cnblogs.com/zhaoguan_wang/p/5169821.html 背景說明: 今天查閱書籍時,偶然間發現“在對某個索引

Oracle解決索引碎片功能

數據 時間 都是 val 情況 碎片 mage 分享圖片 解決 我們開始時向一個空的帶索引的表中插入大量數據後,是不會產生碎片問題的,但是,數據庫經過很長一段時間的增刪改查後,難免會出現碎片問題,影響數據庫的性能,Oracle對於這一問題有自己的解決方案。 下面介紹解決這一

Oracle B樹索引和點陣圖索引索引的說明和目的、索引碎片問題

B樹索引和點陣圖索引 索引是資料庫為了提高查詢效率提供的一種冗餘結構,保守計算資料庫50%以上的調優可以通過調整索引來進行優化; 引用國內一位資深的ORACLE專家的話:"我其實只懂點(挨踢)知識,IT裡面其實只懂點甲骨文,甲骨文裡面其實只懂點資料庫,資料庫裡面其實只懂點SQL,SQL裡面其實

Oracle-表分析索引分析解讀

概述 當表沒有做分析的時候,Oracle 會使用動態取樣來收集統計資訊。 獲取準確的段物件(表,表分割槽,索引等)的分析資料,是CBO存在的基石,CBO的機制就是收集儘可能多的物件資訊和系統資訊,通過對這些資訊進行計算,分析,評估,最終得出一個成本最低的執行計

SQL Server索引進階第十一篇:索引碎片分析與解決(上)

索引設計是資料庫設計中比較重要的一個環節,對資料庫的效能其中至關重要的作用,但是索引的設計卻又不是那麼容易的事情,效能也不是那麼輕易就獲取到的,很多的技術人員因為不恰當的建立索引,最後使得其效果適得其反,可以說“成也索引,敗也索引”。 相關有關索引碎片的問題,大家應該是聽過不少,也許也很多的朋友

通過DBCC整理Sqlserver數據庫表索引碎片

ext log cto 說明 切換 sdn remove microsoft 索引 昨天檢查了一張效率極慢的表,兩年多沒有維護,邏輯掃描碎片高達99.81%,於是開始對這個表進行重點跟蹤和記錄日誌。今天用DBCC SHOWCONTIG WITH TABLERESU

SQL Server索引碎片整理實際操作記錄

刪除 inner dog man and 嘗試 語句 ssd ext SQL Server 版本是 2008 R2。 查詢數據庫索引碎片情況的 SQL 語句(來源): SELECT OBJECT_NAME(ind.OBJECT_ID) AS TableName,

Oracle Logminer 分析重做日誌RedoLog和歸檔日誌ArchiveLog

cti data 格式 保存 命令 重啟 msl dba object 在實際開發過程中,有時我們很有可能需要某個表的操作痕跡,或通過記錄的SQL語句進行有目的性的數據恢復(此時POINT-IN-TIME恢復已經滿足不了更細的粒度)、或僅僅是查看;

sql索引碎片產生的原理 解決碎片的辦法(sql碎片整理)

wid 不能 ins clas char 導致 搜索 產生 磁盤io 本文講述了SQL SERVER中碎片產生的原理,內部碎片和外部碎片的概念。以及解決碎片的辦法和填充因子.在數據庫中,往往每一個對於某一方面性能增加的功能也會伴隨著另一方面性能的減弱。系統的學習數據庫知識,

SQL Server索引的維護 - 索引碎片、填充因子 <第三篇>

sys 使用 text tree 如何 drop some 檢索 作用   實際上,索引的維護主要包括以下兩個方面:   頁拆分   碎片   這兩個問題都和頁密度有關,雖然兩者的表現形式在本質上有所區別,但是故障排除工具是一樣的,因為處理是相同的。   對

學習筆記(十一)——數據庫的索引碎片、計劃緩存、統計信息

部分 null 文章 mage like 分享 show not 決定 1.索引碎片 數據庫存儲本身是無序的,建立了聚集索引,會按照聚集索引物理順序存入硬盤。既鍵值的邏輯順序決定了表中相應行的物理順序 而且在大多數的情況下,數據庫寫入頻率遠低於讀取頻率,索引的存在為了讀

Oracle復合索引+空值的索引使用問題

圖片 .com 討論 bubuko dep spa tree not nbsp 昨天在QQ群裏討論一個SQL優化的問題,語句大致如下: select A,min(B) from table group by A;--A,B都沒有not null約束,A列無空值,B列有空值

Oracle 事務、索引、視圖

and savepoint view視圖 map 事務 nbsp delet rop 信息 1、事務(Transaction) 1、完整事務:分為顯示 關鍵字:只有用到commit 才能真正寫入數據庫 隱示事務:連接——set

查看索引碎片和維護

alt 索引 sel physical 查看 alter ati sele nta SELECT a.index_id , b.name , a.avg_fragmentation_in_percent FROM sys.dm_db_

Oracle分析函數

一起 esc 不同 mil 用法 oracl 使用 idt 順序 Oracle的分析函數row_number(),rank(),dense_rank()的用法與區別 比如查詢工資排名第7的員工信息,可以用分析函數來做。 --查詢工資排名第7的員工信息select * f

Oracle跟蹤分析數據庫啟動的各個階段

設置 event base size ont buffers lte alt ces 目錄 啟動到nomount狀態 設置trace 啟動數據庫到mount狀態並打開 查閱trace 查閱trace的另外方法 v$diag_info 視圖 演示如下: 啟動到nomoun

Oracle 11g R2 索引

場景 相對 數據行 一個數 ado water 占用 鎖定 oracle 索引是oracle提供的一個對象,提供了一種快速訪問數據的途徑,提高了數據庫的檢索性能。索引使數據庫程序無需對整個表進行全表掃描,就可以在其中找到所需要的數據,就想書的目錄,可以通過他快速查找所需信息