oracle表重命名 索引,CSS_在Oracle數據庫中按用戶名重建索引的方法,如果你管理的Oracle數據庫下某 - phpStudy...

在Oracle數據庫中按用戶名重建索引的方法

如果你管理的Oracle數據庫下某些應用項目有大量的修改刪除操作, 數據索引是需要周期性的重建的.

它不僅可以提高查詢性能, 還能增加索引表空間空閑空間大小.

在ORACLE里大量刪除記錄后, 表和索引里占用的數據塊空間并沒有釋放.

重建索引可以釋放已刪除記錄索引占用的數據塊空間.

轉移數據, 重命名的方法可以重新組織表里的數據.

下面是可以按ORACLE用戶名生成重建索引的SQL腳本:

SET ECHO OFF;

SET FEEDBACK OFF;

SET VERIFY OFF;

SET PAGESIZE 0;

SET TERMOUT ON;

SET HEADING OFF;

ACCEPT username CHAR PROMPT 'Enter the index username: ';

spool /oracle/rebuild_&username.sql;

SELECT

'REM +-----------------------------------------------+' || chr(10) ||

'REM | INDEX NAME : ' || owner || '.' || segment_name

|| lpad('|', 33 - (length(owner) + length(segment_name)) )

|| chr(10) ||

'REM | BYTES : ' || bytes

|| lpad ('|', 34-(length(bytes)) ) || chr(10) ||

'REM | EXTENTS : ' || extents

|| lpad ('|', 34-(length(extents)) ) || chr(10) ||

'REM +-----------------------------------------------+' || chr(10) ||

'ALTER INDEX ' || owner || '.' || segment_name || chr(10) ||

'REBUILD ' || chr(10) ||

'TABLESPACE ' || tablespace_name || chr(10) ||

'STORAGE ( ' || chr(10) ||

' INITIAL ' || initial_extent || chr(10) ||

' NEXT ' || next_extent || chr(10) ||

' MINEXTENTS ' || min_extents || chr(10) ||

' MAXEXTENTS ' || max_extents || chr(10) ||

' PCTINCREASE ' || pct_increase || chr(10) ||

');' || chr(10) || chr(10)

FROM dba_segments

WHERE segment_type = 'INDEX'

AND owner='&username'

ORDER BY owner, bytes DESC;

spool off;

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

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

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

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

如果你想修改索引的存儲參數, 在重建索引rebuild_&username.sql里改也可以.

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

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

分析索引,看是否碎片嚴重

SQL>ANALYZE INDEX &index_name VALIDATE STRUCTURE;

col name heading 'Index Name' format a30

col del_lf_rows heading 'Deleted|Leaf Rows' format 99999999

col lf_rows_used heading 'Used|Leaf Rows' format 99999999

col ratio heading '% Deleted|Leaf Rows' format 999.99999

SELECT name,

del_lf_rows,

lf_rows - del_lf_rows lf_rows_used,

to_char(del_lf_rows / (lf_rows)*100,'999.99999') ratio

FROM index_stats where name = upper('&index_name');

當刪除的比率大于15 - 20% 時,肯定是需要索引重建的.

經過刪改后的rebuild_&username.sql文件我們可以放到ORACLE的定時作業里:

比如一個月或者兩個月在非繁忙時間運行.

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

那就忽略這個錯誤, 看下次是否成功.

對那些特別忙的表要區別對待, 不能用這里介紹的方法,

還要把它們的索引從rebuild_&username.sql里刪去

本文作者:相關閱讀:

CSS教程:用dl dt dd來制作列表

ASP.Net防止刷新自動觸發事件的解決方案

多域控制器環境下ActiveDirectory災難恢復

一個模仿oso的php論壇程序源碼(之二)

Apache, PHP在Windows 9x/NT下的安裝與配置 (一)

Linux下配置和安裝Domino 服務器 3

Windows 2003對打印服務器的保護(圖)

ASP中Sub和Function的區別說明

CSS樣式表在網頁設計中的4個特性

SQL存儲過程和觸發不能使用USE的應對方法

在虛擬機Redhat Linux下安裝Samba服務器

PHP 5.3中的命名空間:你用過了么?

PHP實現MySQL更新記錄的代碼

15種ASP技巧

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/443048.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/443048.shtml
英文地址,請注明出處:http://en.pswp.cn/news/443048.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ora-01113 oracle8i,ora-01113解決辦法

今天在檢查接口機的時候,發現速度奇慢,于是,就差了一下v$session表,可是很不幸,查詢的速度慢的要命,原來的前幾天備份的時候出現的問題,沒辦法,關閉后重其一次吧,可是關閉…

oracle更換rac節點,Oracle-rac 更改VIP地址—2節點的

1、主機名規劃:--更改前:#Public Network - (eth0)ITPUB個人空間8Aw I"PbAv192.168.10.11 rac1G&n&uwk%m11386773192.168.10.12 rac2#Private Interconnect - (eth1)[V/{h4D(*f1L!J1138677310.10.10.11 rac1privH9RI(H/d.cP*UY1138677310.1…

Linux部署oracle11g,linux環境下部署Oracle11g

一、部署準備1、查看本地ssh服務Linux系統下安裝啟動ssh服務:1.檢查是否裝了SSH包rpm-qa |grep ssh2.沒有安裝SSH直接YUM安裝yuminstall openssh-server3.檢查SSH服務是否為開機啟動chkconfig--list sshd4.設置開機啟動SSH服務chkconfig--level 2345 sshd on5.重新啟…

php yii把pdf轉成圖片,yii實現圖片上傳及縮略圖生成的方法

這篇文章主要介紹了yii實現圖片上傳及縮略圖生成的方法,詳細分析了圖片的上傳及縮略圖的生成原理與實現方法,是非常實用的技巧,需要的朋友可以參考下本文實例講述了利用yii框架來實現圖片上傳功能并在上傳成功之后自動生成縮略圖的方法,分享給大家供大家參考。具體實…

linux下的安裝命令行工具下載,linux系統程序安裝(二)yum工具2-yum源及包下載

繼續我們的yum工具應用之旅,yum工具之所以方便就是因為有方便的在線云庫,實際工作中我們可能沒辦法鏈接互聯網,或者我們想安裝的程序原生源那么我們能不能用其他方式應用方便的yum源呢?一、使用光盤作為yum源1、將光盤掛載到/mnt目…

linux顯卡內核修改,iTOP-4412開發板-驅動-linux顯卡驅動的修改方法

本文檔介紹迅為4412開發板的顯卡分辨率修改方法。iTOP-4412 開發板支持 4.3 寸、7 寸和 9.7 寸等 lcd 顯示屏。其中 4.3 寸屏是用的 cpu直接出來的 RGB 信號,7 寸屏和 9.7 寸屏是用的 LVDS 信號,硬件上使用了一個 RGB 轉LVDS 的芯片實現的。我們來看下顯…

linux-如何限制普通用戶的磁盤使用空間-磁盤配額quota,Linux系統下如何進行磁盤配額Quota的設置...

Linux如何進行磁盤配額quota的設置通過quota進行磁盤配額,可以控制用戶對磁盤空間和文件的控制,我們以一個實例作為說明,對2個用戶user01、user02分別進行磁盤使用空間和創建文件的限制。首先,創建一個新的分區&#x…

linux一臺機器如何安裝兩個mysql,在一臺linux機器上啟動兩個mysql實例

環境:linux主機上已經yum安裝了mysql,而且數據庫正在運行。在不關閉/重啟mysql的情況下,重新啟動一個新的mysql實例,使用3307端口,實現一臺機器上同時運行兩個數據庫實例。1、創建新的mysql實例數據存儲目錄&#xff1…

linux和windows啟動,Linux和Windows雙系統的啟動

問題Linux和Windows雙系統的啟動解決方案在某些特殊情況下,服務器可能要安裝雙系統一個linux系統,一個windows系統這種情況下,安裝順序是,先裝Windows系統,后裝Linux這是因為,Linux的引導程序grub具備多系統…

體積最小桌面linux,Tiny Core Linux - 體積最小的精簡 Linux 操作系統發行版之一 (僅10多MB)...

Tiny Core Linux (TCL) 是一款極體積極小且高度可擴展的微型 Linux 發行版,它將一個 Linux 操作系統精簡到僅有 10 多 MB 左右的大小,似乎小巧得有點讓人嘆為觀止!要知道無論是常見的 Ubuntu、CentOS、Debian 的體積動輒就是幾百MB甚至要上GB…

linux下緩存命中測試,Linux 性能優化實戰(倪朋飛)---查看緩存命中情況

cachestat 提供了整個操作系統緩存的讀寫命中情況。cachetop 提供了每個進程的緩存命中情況。但是,cachetop 并不把直接 I/O 算進來。安裝 cachestat、cachetop:$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4052245BD4284CDD$ ech…

linux suid提權原理,Linux SUID、SGID、sticky提權

S UID SGID SOID 核心就在 “S” ,S就是允許本圈子 用戶有r,w,x ;例如:1、chmod sg test.txt 只允許testex.txt所在的組 員可以執行r,w,x2、chmod us test.txt2 只允許test.txt2的屬主 執行r,w,x溫馨提示:對SUID只需要有個了解就行了&#xf…

linux新建samba賬戶,ubuntu上創建賬戶和samba用戶

系統環境:Linux ubuntu152 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 x86_64 x86_64x86_64 GNU/Linux系統用戶登錄創建linux賬戶:1. sudo adduser username --home /home/username執行該命令后需要兩次輸入賬戶密碼,連續回車&…

linux xorg.0.log,Red Hat無法登錄,Cannot open log file /var/log/Xorg.0.log

命令截面輸入ROOT帳號無效,幾秒后彈出報錯頁面I cannot start the X server (your graphical interface ) It is likely it is not setup correctlyWould you like to view the X server output diagrose the problem?然后按YES后跳出Fatal server error:Cannot o…

c程序語言習題解答對編程有幫助嗎,給C語言編程初學者的10個學習建議,助你學習事半功倍,不要錯過...

對于初學者應該如何學習C語言編程開發技術,縱觀中國目前整體行業來說,互聯網IT行業 成為了拔尖的行業,IT互聯網程序開發成了靠自己能力可以多掙一點錢,所以各個行業都在轉行,其實互聯網不存在飽和,只不過大…

跟世界打個招呼c語言編程,(一)helloworld

Idea下用SBT搭建Spark Helloworld沒用過IDEA工具,聽說跟Eclipse差不多,sbt在Idea其實就等于maven在Eclipse.Spark運行在JVM中,所以要在Idea下運行spark,就先要安裝JDK 1.8 然后加入S ...菜鳥學Struts2——HelloWorld寫在前面 自從工作后就過上了只有一個月記憶的生活,太健忘,很…

求一份100行左右的C語言程序,求4個C語言程序 每個100行左右 大一水平的

2008-06-30 回答//鏈表問題//電話薄實現:可以輸入,輸出,插入,刪除聯系人信息.#include#include#includetypedef struct student{char address[20];char name[20];char mail[7];;char phone[10];struct student *next;}LNode;void creat_list( LNode **h ) //請輸入聯系人信息{L…

c語言INT16與int,C中int,Uint,uint16等有什么區別以及用處

在C中,既然有了int,為什么還要有uint?特別是uint16,uint32等又有什么用?他們有什么區別?”----------------------------------------------------------------------------------------------------------…

指針使用c語言,指針的使用(C語言)

/*例8.1 通過指針變量訪問整型變量*//*#include的作用是提供相關的信息(當在使用標準)*//*stdio.h:是C編譯系統提供的一個文件名*//*只需要記住:在程序中用到系統提供的標準函數庫中的輸入輸出函數時,需要在程序開頭寫上#include這一行*/#inc…

在c語言中優先級最低的是6,C語言中?*,<<,=?,->哪個優先級最低

滿意答案nishiwodezmx推薦于 2016.03.13采納率:46% 等級:12已幫助:6812人最高的是->(指向運算符)再到*再到>>(右移運算符)再到(賦值運算符)c語言運算符號:1級優先級 左結合() 圓括號[] 下標運算符-> 指向結構體成員運算符. 結…