东莞网站建设行业翘楚/国内ip地址 免费
Light Scan 翻译为中文是“轻度扫描”, Light Scan 是一种可绕过缓冲池开销的大型数
据表的顺序扫描方式,数据库服务器会为 light scan 查询单独在虚拟度开辟一个单独的内存
区域。Light Scan 是用于执行大型数据表顺序扫描的最快方法。
在以下 4 个条件下会自动使用 light scan。
1. 优化器选择对表的顺序扫描。
2. 表中的页数大于缓冲池中的缓冲区数。
3. 表的字段类型包含:varchar、lvarchar
4. 使用的隔离级在表上不获取任何锁或者获取一个共享锁。
l (1)脏读隔离级别(Dirty Read)。
l (2)可重复读隔离级(Repeatable Read),前提是已经有共享锁。
l (3)提交读隔离级别,前提是表上已经有了共享锁。
在某些应用情景下,我们往往需要强制和确认使用 light scan,即使表包含 varchar、lvarchar 类型的字段。我们可以通过如下方法来强制使用 light scan。
set isolation dirty read;
set environment IFX_BATCHEDREAD_TABLE '1';
Select * from tabname; --顺序扫描方法访问表
Light Scan 典型应用场景如下:
在一些大的报表类查询业务中需要扫描大部分记录,而且表记录非常大的情况。特别是在 OLTP 业务系统繁忙的情况下,需要运行 DSS 查询,推荐使用 light scan 获取较好的性能,同时由于 light scan 不是用公共的 bufferpool,所以不会影响其他业务的运行。
在很多情况下,DBA 为关键表的文本备份,或者表重建需要将表数据导出到文本文件。在此情况下可以有 light scan。
可以通过 onstat -g scn 命令来监控当前启用 light scan 的情况。