我的Statspack报告显示,对数据库的大约90%的物理读取是因为LOB。
我已经在下面提供了我的statspack报告片段。
Segments by Physical Reads DB/Inst: PMDS2/pMDS2 Snaps: 12184-12191
-> End Segment Physical Reads Threshold: 1000
Subobject Obj. Physical Pct
Owner Tablespace Object Name Name Type Reads Total
---------- ---------- -------------------- ------------ ----- ------------ -----
MDSSYS MDSDATA SYS_LOB0000064003C00 LOB 465,135 89.0
我如何了解有关此LOB的更多详细信息?如何找到保存此LOB的表/列的确切内容以及为什么使用大量物理读取?
答案 0 :(得分:1)
尝试此查询以获取有关此特定LOB的信息:
SELECT owner, table_name, column_name
FROM dba_lobs
WHERE segment_name = 'SYS_LOB0000064003C00';
对于物理读取,默认情况下,在Oracle中,每次LOB访问,无论是读取还是写入,都是从磁盘直接读取或直接写入磁盘的物理I / O.您可以使用以下命令控制是否缓存LOB内容:
ALTER TABLE table_name MODIFY LOB (column_name) ( CACHE );
但是如果你有大尺寸的LOB,请小心,内存使用量可能会急剧增加!