oracle數(shù)據(jù)庫(kù)突然變慢了 Oracle對(duì)表分區(qū)完以后,為什么查詢效率變慢了?
Oracle對(duì)表分區(qū)完以后,為什么查詢效率變慢了?分區(qū)后每個(gè)分區(qū)是否在不同的表空間中,是否查詢所有數(shù)據(jù)?如果是這樣,則可能是在查詢時(shí),數(shù)據(jù)位于不同的表空間中,從而導(dǎo)致要查詢的數(shù)據(jù)塊更多。此時(shí),查詢速度
Oracle對(duì)表分區(qū)完以后,為什么查詢效率變慢了?
分區(qū)后每個(gè)分區(qū)是否在不同的表空間中,是否查詢所有數(shù)據(jù)?如果是這樣,則可能是在查詢時(shí),數(shù)據(jù)位于不同的表空間中,從而導(dǎo)致要查詢的數(shù)據(jù)塊更多。此時(shí),查詢速度變慢。此外,創(chuàng)建分區(qū)表不一定能提高查詢速度。這取決于需要查詢的結(jié)果集是否集中在盡可能少的數(shù)據(jù)庫(kù)中。如果使用表空間,查詢速度可能會(huì)降低
要使用索引查詢一段數(shù)據(jù),需要先訪問(wèn)索引數(shù)據(jù),然后再訪問(wèn)表數(shù)據(jù)。如果整個(gè)表被掃描兩次,則只訪問(wèn)表數(shù)據(jù),并且只執(zhí)行一次讀取操作。因此,如果查詢結(jié)果占表數(shù)據(jù)的50%以上,則使用索引的速度會(huì)很慢。考慮到單個(gè)讀取操作可以讀取多條數(shù)據(jù),而且索引的結(jié)構(gòu)比表復(fù)雜,如果占表數(shù)據(jù)的20%以上,查詢可能會(huì)結(jié)束,使用索引不如全表掃描。因此,Oracle優(yōu)化器需要根據(jù)開(kāi)銷(xiāo)頻繁地更新統(tǒng)計(jì)數(shù)據(jù),方便優(yōu)化器判斷使用全表掃描和索引的開(kāi)銷(xiāo)