您使用哪个工具来确定查询是否在ANSI兼容数据库中使用索引?
答案 0 :(得分:0)
正如其他人所说,你还没有说明你使用的是哪个DBMS,所以我已经告诉你我在MSSQL 2014上运行的知识。
您可以使用索引监视功能检查应用程序是否使用索引。如果您为索引设置MONITORING USAGE属性,则可以查询v $ object_usage以查看是否正在使用索引。这是一个例子:
SQL> CREATE TABLE t1 (c1 NUMBER);
Table created.
SQL> CREATE INDEX t1_idx ON t1(c1);
Index created.
SQL> ALTER INDEX t1_idx MONITORING USAGE;
Index altered.
SQL> SELECT table_name, index_name, monitoring, used FROM v$object_usage;
TABLE_NAME INDEX_NAME MON USE
------------------------------ ------------------------------ --- ---
T1 T1_IDX YES NO
SQL> SELECT * FROM t1 WHERE c1 = 1;
no rows selected
SQL> SELECT table_name, index_name, monitoring, used FROM v$object_usage;
TABLE_NAME INDEX_NAME MON USE
------------------------------ ------------------------------ --- ---
T1 T1_IDX YES YES
To reset the values in the v$object_usage view, disable index monitoring and re-enable it:
ALTER INDEX indexname NOMONITORING USAGE;
ALTER INDEX indexname MONITORING USAGE;