oracle查看索引是否生效 oracle用了索引反而慢了,為什么?
oracle用了索引反而慢了,為什么?要使用索引查詢一段數(shù)據(jù),首先需要訪問索引數(shù)據(jù),然后訪問表數(shù)據(jù)。如果整個表被掃描兩次,則只訪問表數(shù)據(jù),并且只執(zhí)行一次讀取操作。因此,如果查詢結(jié)果占表數(shù)據(jù)的50%以上
oracle用了索引反而慢了,為什么?
要使用索引查詢一段數(shù)據(jù),首先需要訪問索引數(shù)據(jù),然后訪問表數(shù)據(jù)。如果整個表被掃描兩次,則只訪問表數(shù)據(jù),并且只執(zhí)行一次讀取操作。因此,如果查詢結(jié)果占表數(shù)據(jù)的50%以上,則使用索引的速度會很慢??紤]到單個讀取操作可以讀取多條數(shù)據(jù),而且索引的結(jié)構(gòu)比表的結(jié)構(gòu)復(fù)雜,查詢結(jié)果可能會比較慢,占表數(shù)據(jù)的20%以上,使用索引不如全表掃描。因此,Oracle優(yōu)化器需要根據(jù)成本頻繁地更新統(tǒng)計數(shù)據(jù),這便于優(yōu)化器判斷使用全表掃描和索引的成本