oracle数据库如何重建索引
当索引的【suǒ yǐn de】📤碎片过【suì piàn guò】多时【duō shí】,会影响🧝执行查👎询的【de】📤速度🚉,从而影响到【dào】我们的工【men de gōng】🦊作效率⭕。这时候采取的【cǎi qǔ de】📤最有利的【de】📤措施莫过于【guò yú】🤓重建索【chóng jiàn suǒ】👐引了。本文主要介绍⛺了Oracle数据库【shù jù kù】🔯中检查索【suǒ】引碎片😳并重建索【chóng jiàn suǒ】👐引的【de】过程💦,接下来我们就【wǒ men jiù】开始介【kāi shǐ jiè】绍这一过程。
重建索【chóng jiàn suǒ】👐引的步【yǐn de bù】🧐骤如下:
1. 确认基本信息【běn xìn xī】
登入数【dēng rù shù】据库🔯,找到【dào】专🚃门存放【mén cún fàng】🥪index 的【de】📤tablespace,并且这【bìng qiě zhè】😳个【gè】tablespace下所有🎞index的【de】📤owner都是tax.将【jiāng】index专门存🎎放在一【fàng zài yī】👤个独立【gè dú lì】💀的【de】📤tablespace, 与数据【yǔ shù jù】表的【biǎo de】📤tablespace分离,是常用的【de】数据⛅库设计方法❣。
2. 查找哪些🌋index需😯要重建
通过🥈anlyze index .... validate structure命令可以分析【fèn xī】🔁单个【gè】指定的【de】📤index,并且将【jiāng】🌚单个【gè】index 分析【fèn xī】🔁的【de】📤结果存放到【dào】 index_stats试图下😿。一般判断的【pàn duàn de】📤依据【yī jù】是:
height >4 pct_used < 50% del_lf_rows / lf_rows +0.001 > 0.03 g )
3. google上下载了遍历【le biàn lì】所有🎞index脚本【jiǎo běn】🤙
发现anlyze index .... validate structure只能填充单个【chōng dān gè】index分析【fèn xī】信🍫息【xī】,于是🃏google了下👇,从网上下了个【xià le gè】Loop 脚本【jiǎo běn】🤙,遍历索【suǒ】引空间🛫下所有🎞的索引【de suǒ yǐn】🈁名字【míng zì】🦀,并且可以把所有🎞index的【de】📤分析【fèn xī】信🍫息【xī】存放到【dào】自己建立的【de】📤一个【gè】用户表【hù biǎo】🦏中。
4. anlyze index 锁定🤒index
发现下载的【zǎi de】📤脚本【jiǎo běn】🤙不好用【bú hǎo yòng】,应为anlyze index在分析【fèn xī】🔁索引前【suǒ yǐn qián】要争取独占锁🙎,锁住index,很明显有些😀index正在被【zhèng zài bèi】应用系💈统的【tǒng de】📤使用【shǐ yòng】,所以运【suǒ yǐ yùn】行🎐anlyze失败。这里【zhè lǐ】吸取的【de】教👹训是,尽量晚上做这【shàng zuò zhè】种事。但是本人比较喜欢准【xǐ huān zhǔn】时回家😖,所以在🐮语句中【yǔ jù zhōng】添加Exception Handler,抛出anlyze index执行🎐失败的【de】📤那些🌋index 名称🎊,使脚本【shǐ jiǎo běn】🤗正常运【zhèng cháng yùn】行完毕【háng wán bì】💆。并且根🗽据打印【jù dǎ yìn】🎛到前台【dào qián tái】的【de】📤index name手动执🕑行那些🧝index分析【fèn xī】🔁。
5. 总结
虽然发现522个【gè】index中有160个【gè】符合上面的【de】📤判断的【pàn duàn de】📤依据【yī jù】。但是发现索【suǒ】引都不大🎫,而那些【ér nà xiē】🌋拥有百【yōng yǒu bǎi】万🏺leaf的索引【de suǒ yǐn】🈁又没有【yòu méi yǒu】符合上面的【de】📤判断条件🚾,所以结论是无【lùn shì wú】🕡需😯index rebuild online. 没有啥【méi yǒu shá】🐍碎片。
6.什么时【shí me shí】候可以📏rebuild index呢?
rebuild index online,对那些🌋有大量🤳DML操作的【de】📤大索【suǒ】引是有益的【de】📤。可以每个【gè】月季🈂度🚉做一次针对较【zhēn duì jiào】大索引的【suǒ yǐn de】📤rebuild。通常哪【tōng cháng nǎ】怕【pà】rebuild index online也会造成【chéng】I/O争用【zhēng yòng】,所以有【suǒ yǐ yǒu】无【wú】🕡online意义不🔍大,可以放到【dào】3-5个晚上【gè wǎn shàng】,分批执行🎐rebuild index,锁定🤒index,不让用🖋户用(没有用户等入🌰的【de】时候😋),并且加【bìng qiě jiā】上paralle 8关键字📪,应为发现数据【xiàn shù jù】库🔯服务器【fú wù qì】有8个【gè】cpu processors.
关于【guān yú】Oracle数据库【shù jù kù】🔯检查索【suǒ】引碎片😳和重建🖇索引的【suǒ yǐn de】📤知识就介绍到【dào】💮这里【zhè lǐ】,希望能【xī wàng néng】够对您【gòu duì nín】有所帮助。
关键词:oracle,数据库,重建索引
阅读本文后您有什么感想? 已有 人给出评价!
- 0
- 0
- 0
- 0
- 0
- 0