The LRU Algorithm and Full Table Scans
LRU算法与全表扫描
When the user process is performing a full table scan, it reads the blocks of the table into buffers and puts them on the LRU end (instead of the MRU end) of the LRU list.
当用户进程执行全表扫描时,它会把表中的块读到buffer中,并把这些buffer放到LRU列表的LRU端。
This is because a fully scanned table usually is needed only briefly, so the blocks should be moved out quickly to leave more frequently used blocks in the cache.
这是因为全表扫描通常只是被短时地使用,所以这些块会被很快的移除,腾出空间来给使用频率高的的block。
You can control this default behavior. of blocks involved in table scans on a table-by-table basis.
你可以逐表控制表扫描涉及到的块的这种默认行为。
To specify that blocks of the table are to be placed at the MRU end of the list during a full table scan, use the CACHE clause when creating or altering a table or cluster. You can specify this behavior. for small lookup tables or large static historical tables to avoid I/O on subsequent accesses of the table.
指定在全表扫描中将表中的块放在LRU列表的MRU端,可以在创建或是修改表或Cluter时使用CACHE从句。你可以为小的查询表或是大的静态历史数据表指定这种行为,以减少后续访问表时的I/O。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7417681/viewspace-709609/
,如需转载,请注明出处,否则将追究法律责任。