<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>朝圣者(梁鹏) &#187; 删除</title>
	<atom:link href="http://www.liangpeng.net/ytag/%e5%88%a0%e9%99%a4/feed" rel="self" type="application/rss+xml" />
	<link>http://www.liangpeng.net</link>
	<description>寻找一小块属于自己的栖息地</description>
	<lastBuildDate>Fri, 13 Jan 2012 01:33:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Oracle 表删除大量数据后查询变慢问题(转)</title>
		<link>http://www.liangpeng.net/y2009/m11/oraclebiaoshanchudaliangshujuhouchaxunbianmanwentizhuan_907.html</link>
		<comments>http://www.liangpeng.net/y2009/m11/oraclebiaoshanchudaliangshujuhouchaxunbianmanwentizhuan_907.html#comments</comments>
		<pubDate>Fri, 27 Nov 2009 03:36:17 +0000</pubDate>
		<dc:creator>梁鹏</dc:creator>
				<category><![CDATA[数据库技术]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[删除]]></category>

		<guid isPermaLink="false">http://www.liangpeng.net/?p=907</guid>
		<description><![CDATA[转自：http://hi.baidu.com/bbz_dd_a/blog/item/1c962bf4b69666dff2d38588.html 公司的oracle狂慢，估计是配置没搞好吧，自己也不会只能凑合用了，google发现如下好文章，收藏之 Oracle 表删除大量数据后，即使表中只有几行记录，但用select count(*) from table 来查询发觉都不会马上出来，原因是该表的空间大了，查询起来很慢。解决的方法是把该表所占用的表空间缩小，或者说释放表空间。 alter table XXXX move; 这样处理后就释放了表空间了。但是释放表空间后，表的行号rowid会发生变化，而基于rowid的索引则会变成无效。因此该操作后必须重建索引。否则会 提示“ORA-01502: 索引&#8217;SMP.ITEMLOG_MID_IDX&#8217;或这类索引的分区处于不可用状态” 而重建索引的方法当然可以先drop掉再create ，但是这样太麻烦了，用alter index XXX rebuild 这样最快了，不会改变原来的索引结构。]]></description>
			<content:encoded><![CDATA[<div id="blog_text">
<p>转自：http://hi.baidu.com/bbz_dd_a/blog/item/1c962bf4b69666dff2d38588.html</p>
<p><em>公司的<span class='wp_keywordlink_affiliate'><a href="http://www.liangpeng.net/ytag/oracle" title="查看 oracle 中的全部文章" target="_blank">oracle</a></span>狂慢，估计是配置没搞好吧，自己也不会只能凑合用了，google发现如下好文章，收藏之</em></p>
<p>Oracle 表<span class='wp_keywordlink_affiliate'><a href="http://www.liangpeng.net/ytag/%e5%88%a0%e9%99%a4" title="查看 删除 中的全部文章" target="_blank">删除</a></span>大量数据后，即使表中只有几行记录，但用select count(*) from table 来查询发觉都不会马上出来，原因是该表的空间大了，查询起来很慢。解决的方法是把该表所占用的表空间缩小，或者说释放表空间。</p>
<p>alter table XXXX move; 这样处理后就释放了表空间了。但是释放表空间后，表的行号rowid会发生变化，而基于rowid的索引则会变成无效。因此该操作后必须重建索引。否则会 提示“ORA-01502: 索引&#8217;SMP.ITEMLOG_MID_IDX&#8217;或这类索引的分区处于不可用状态” 而重建索引的方法当然可以先drop掉再create ，但是这样太麻烦了，用alter index XXX rebuild 这样最快了，不会改变原来的索引结构。</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.liangpeng.net/y2009/m11/oraclebiaoshanchudaliangshujuhouchaxunbianmanwentizhuan_907.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

