与IO相关的等待事件troubleshooting-系列5
'db file scattered read'
这是另一种常见的等待事件。他产生于Oracle从磁盘读取多个块到Buffer Cache中非连续("")缓存的时候。这种读一次最大值是(可参考: Document 30712.1 Init.ora Parameter "DB_FILE_MULTIBLOCK_READ_COUNT" Reference Document 1037322.6 WHAT IS THE DB_FILE_MULTIBLOCK_READ_COUNT PARAMETER?) 正如之前所说的,从Oracle 10g R2开始,DB_FILE_MULTIBLOCK_READ_COUNT初始化参数现在可以自动调优,当未显示设置时可以使用一个默认值。这个默认值和可以高效执行的最大IO容量相关。参数值依赖于平台,对于大多数平台是1MB。因为参数是以块表示的,所以也可以设置为一个和可以高效执行的最大IO容量相当的值(被标准块容量切分)。
3. 因为使用全表扫描和全索引快速扫描的块会放到Buffer Cache取代链的最少最近使用端,有时使用多Buffer Pools,将这些段放到KEEP池中都会有所帮助。(可参考:Document 76374.1 Multiple Buffer Pools)
4. 使用分区能够降低作为分区剪裁扫描数据的数量,限制段分区的扫描子集。
5. 最后,可以考虑最长访问的段包含的数据数量(通过将旧的、不需要的数据移出数据库),或将这些段移动到新的、更快的磁盘,以降低IO的响应时间。
(未完待续)
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。