請問如何減少library cache的碎片?

[复制链接]
查看11 | 回复9 | 2005-10-30 17:05:33 | 显示全部楼层 |阅读模式
我在oracle文檔看到下面的一句話,(Because the shared pool acts as a cache, nothing will ever be aged out until all thefree memory has been used up. Free memory is more properly thought of aswasted space. A high value of free memory is a symptom of fragmentation.)
也就是說,通常我們看見shared pool 的free memory很大的話,那證明library cache的碎片就很多了。
那問題是怎麼樣減少shared pool的碎片呢?
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
有人知道嗎?
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
1.你看的文档可能比较陈旧了

Oracle7上是如此,到Oracle9已经有了很大变化。从Oracle9开始,shared pool的细分力度加大,碎片问题已经较Oracle8好了许多。
参考:
http://www.eygle.com/internal/shared_pool-1.htm
2.由于Oracle管理方式的改变
你不能单从以上一段话来判断free memory的来源,如果你真的关心这些free memeory的来源。
你可以查询x$ksmsp来发现其具体分配情况,是大是小还是碎片过多都一目了然了
具体参考:
http://www.eygle.com/internal/shared_pool-2.htm
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
謝謝eygle,我之前也有看過你的這些文章。
那我該怎麼減少shared_pool的碎片?
還是我不定時的用alter system flush shared_pool;?
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
flush shared_pool 实质上所能释放的和缓解的问题非常有限。
这实质上是饮鸩止渴
从Oracle9i开始,已经不再推荐使用 flush shared_pool 这个命令了。
我上面的两个链接就是说的这些问题,不知道你仔细看了没有?
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
最初由 eygle 发布
[B]flush shared_pool 实质上所能释放的和缓解的问题非常有限。
这实质上是饮鸩止渴
从Oracle9i开始,已经不再推荐使用 flush shared_pool 这个命令了。
我上面的两个链接就是说的这些问题,不知道你仔细看了没有? [/B]

呵呵,多使用bind var应该可以减少shared_pool的碎片.
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
最初由 xzh2000 发布
[B]
呵呵,多使用bind var应该可以减少shared_pool的碎片. [/B]

bind var在本质上是通过减少shared_pool的使用来减少碎片的生成的。
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
謝謝啦!
我已經仔細看過了。
那也就是說,假如有碎片產生的話,那就沒有辦法減少碎片了?
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
最初由 oracle-plus 发布
[B]謝謝啦!
我已經仔細看過了。
那也就是說,假如有碎片產生的話,那就沒有辦法減少碎片了? [/B]

那要分析你的shared_pool的碎片是如何产生的,
象eygle最后一篇文件中的示例,
就是很好的例子哦,
还有就是cursor_sharing=force时,如果表上有histogram的话,
也会产生很多碎片的。
如果你知道你的碎片是如何产生的,
那就可以找到解决它的办法。
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
但是碎片已經產生了,現在這是不可逆轉的結果了。
那怎麼減少呢?
真希望有解決的方法。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行