今天开始查找一个打印功能响应慢的问题,用jprofiler做了一个简单跟踪,发现有条SQL语句,执行时间相对较长。oracle数据库是刚导进去的,不存在碎片和行迁移、行链接、统计信息没更新的可能,这条SQL语句也不是做的全表扫描,看来可能是索引丢失或使用有问题。检查数据表索引,设了一个组合索引。拿索引和SQL语句一对比,SQL语句where字句中第一个查询列不在索引列的第一列,看来这个索引对这条SQL语句是无效的。为了证明这一点,做了索引监控:
alter index index_name monitoring usage;
重新做了一遍打印操作。
select * from V$object_usage;
查询结果为空,证明了这一点。正好,借此机会总结一下索引的使用和优化。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/15011739/viewspace-414940/ ,如需转载,请注明出处,否则将追究法律责任。