日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Oracle按用戶名重建索引方法淺析

假如你管理的Oracle數(shù)據(jù)庫下某些應(yīng)用項(xiàng)目有大量的修改刪除操作, 數(shù)據(jù)索引是需要周期性的重建的. 它不僅可以提高查詢性能, 還能增加索引表空間空閑空間大小。在Oracle里大量刪除記錄后, 表和索引里占用的數(shù)據(jù)塊空間并沒有釋放。

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),白城企業(yè)網(wǎng)站建設(shè),白城品牌網(wǎng)站建設(shè),網(wǎng)站定制,白城網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,白城網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

通過重建索引可以釋放已刪除記錄索引占用的數(shù)據(jù)塊空間來轉(zhuǎn)移數(shù)據(jù), 重命名的方法可以重新組織表里的數(shù)據(jù)。

Oracle按用戶名重建索引的SQL腳本

 
 
 
  1. SET ECHO OFF; 
  2.   SET FEEDBACK OFF; 
  3.   SET VERIFY OFF; 
  4.   SET PAGESIZE 0; 
  5.   SET TERMOUT ON; 
  6.   SET HEADING OFF; 
  7.   ACCEPT username CHAR PROMPT 'Enter the index username: '; 
  8.   spool /oracle/rebuild_&username.sql; 
  9.   SELECT 
  10.   'REM +-----------------------------------------------+' || chr(10) || 
  11.   'REM | INDEX NAME : ' || owner || '.' || segment_name 
  12.   || lpad('|', 33 - (length(owner) + length(segment_name)) ) 
  13.   || chr(10) || 
  14.   'REM | BYTES : ' || bytes 
  15.   || lpad ('|', 34-(length(bytes)) ) || chr(10) || 
  16.   'REM | EXTENTS : ' || extents 
  17.   || lpad ('|', 34-(length(extents)) ) || chr(10) || 
  18.   'REM +-----------------------------------------------+' || chr(10) || 
  19.   'ALTER INDEX ' || owner || '.' || segment_name || chr(10) || 
  20.   'REBUILD ' || chr(10) || 
  21.   'TABLESPACE ' || tablespace_name || chr(10) || 
  22.   'STORAGE ( ' || chr(10) || 
  23.   ' INITIAL ' || initial_extent || chr(10) || 
  24.   ' NEXT ' || next_extent || chr(10) || 
  25.   ' MINEXTENTS ' || min_extents || chr(10) || 
  26.   ' MAXEXTENTS ' || max_extents || chr(10) || 
  27.   ' PCTINCREASE ' || pct_increase || chr(10) || 
  28.   ');' || chr(10) || chr(10) 
  29.   FROM dba_segments 
  30.   WHERE segment_type = 'INDEX' 
  31.   AND owner='&username' 
  32.   ORDER BY owner, bytes DESC; 
  33.   spool off; 

假如你用的是WINDOWS系統(tǒng), 想改變輸出文件的存放目錄, 修改spool后面的路徑成:

spool c:\oracle\rebuild_&username.sql;

如果你只想對(duì)大于max_bytes的索引重建索引, 可以修改上面的SQL語句:

在AND owner='&username' 后面加個(gè)限制條件 AND bytes> &max_bytes

如果你想修改索引的存儲(chǔ)參數(shù), 在重建索引rebuild_&username.sql里改也可以。

比如把pctincrease不等于零的值改成是零.

生成的rebuild_&username.sql文件我們需要來分析一下, 它們是否到了需要重建的程度:

分析索引,觀察一下是否碎片特別嚴(yán)重。

 
 
 
  1. SQL>ANALYZE INDEX &index_name VALIDATE STRUCTURE; 
  2.   col name heading 'Index Name' format a30 
  3.   col del_lf_rows heading 'Deleted|Leaf Rows' format 99999999 
  4.   col lf_rows_used heading 'Used|Leaf Rows' format 99999999 
  5.   col ratio heading '% Deleted|Leaf Rows' format 999.99999 
  6.   SELECT name, 
  7.   del_lf_rows, 
  8.   lf_rows - del_lf_rows lf_rows_used, 
  9.   to_char(del_lf_rows / (lf_rows)*100,'999.99999') ratio 
  10.   FROM index_stats where name = upper('&index_name');

當(dāng)刪除的比率大于15 - 20% 時(shí),肯定是需要索引重建的。

經(jīng)過刪改后的rebuild_&username.sql文件我們可以放到Oracle的定時(shí)作業(yè)里:

比如一個(gè)月或者兩個(gè)月在非繁忙時(shí)間運(yùn)行。

如果遇到ORA-00054錯(cuò)誤, 表示索引在的表上有鎖信息, 不能重建索引。

那就忽略這個(gè)錯(cuò)誤, 觀察下次是否成功。

對(duì)于那些特別忙的表要不能用這里上面介紹的方法, 我們需要將它們的索引從rebuild_&username.sql里刪去。


網(wǎng)站題目:Oracle按用戶名重建索引方法淺析
當(dāng)前鏈接:http://www.dlmjj.cn/article/dpepoph.html