可以使用 onstat -g scn 命令显示当前扫描的状态和该扫描的信息。
如果您有一个长时间运行的扫描,那么可以使用该命令检查扫描的进程、在扫描结束前确定扫描所需的时间并可以查看该扫描的信息。对于表来说,onstat -g scn 命令的输出标识该扫描是轻度扫描还是缓冲池扫描。
图: onstat -g scn 输出显示表信息
Light Scan Info descriptor address next_lpage next_ppage ppage_left bufcnt look_aside RSAM batch sequential scan info SesID Thread Partnum Rowid Rows Scan'd Scan Type Lock Mode Notes 48 68 10016e 12bb09 43146 Light Table Look aside, 40 47 100106 101 0 Buffpool +Test Must copy
有关运行扫描时索引扫描可用的信息。
图: onstat -g scn 输出显示索引扫描信息
RSAM batch index scan info SesID Thread Partnum Scan Type Lock Mode Notes 136 156 100197 SLock+Test Start Key GT :-2147483648: Stop Key EQ :1500: Current key :170: Current position: buffp 0x10a4bc0c8 pagenum 2 slot 17 rowoff 4 flags 0
该列也显示了以下之一的值:
轻度扫描正在观察周边。
轻度扫描直接从磁盘读取页的 block 到大缓冲区,而不是从缓冲区管理器获得每个页。在一些情况下,该进程要求此次轻度扫描检查缓冲池中每个数据页的情况下,来自它的一个大缓冲区的过程;这个过程称为 look aside。如果页在缓冲池中,那么此次轻度扫描会使用副本而不是轻度扫描大缓冲区中的部分。如果页不在缓冲池中,那么此次轻度扫描将会使用从磁盘读取到它的大缓冲区的副本。如果轻度扫描正在观察周边,那么会此次扫描的性能会稍微降低。
在很多情况中,轻度扫描会检测到缓冲池不可能具有新版本的页。在这种情况下,此次轻度扫描将不会检查缓冲池也不会观察周边。
服务器正在对一个具有跨页的表执行轻度扫描。该轻度扫描必须访问和使用缓冲池来得到任何主页上不完整的行的剩余的片段。