Sybase-Ase

為什麼表掃描不好?

  • August 26, 2020

在我的工作中,我經常被告知我不應該進行表掃描,因為它可能會對數據庫和使用數據庫的應用程序產生負面影響。他們所說的“負面影響”到底是什麼意思?我能想到的一個負面影響是表掃描會佔用大量磁碟時間,從而阻止其他請求使用磁碟。

有沒有辦法在沒有任何負面影響的情況下進行表掃描?有時我需要為一次性檢查做一次表掃描(對於例行的事情,我當然會做一個索引)。

表掃描本身並不邪惡,它取決於查詢應該做什麼。如果表的很大一部分要麼返回給應用程序,要麼用於某個聚合(如 sum),那麼執行表掃描可能是最有效的。

另一方面,如果要使用表的一小部分,則通過索引查找行效率更高。

正如您提到的,掃描使用磁碟資源。另一個影響是可能必須刷新記憶體中的記憶體數據以為掃描騰出空間。即,由於不必要的掃描,應用程序可能不得不從磁碟而不是記憶體中讀取數據。

引用自:https://dba.stackexchange.com/questions/274367