Да, наличието на ограничения за външни ключове може да подобри производителността на заявката. Има различни трансформации, които са отворени за оптимизатора, когато съществуват подходящи ограничения за външен ключ, които не са общодостъпни. Например, ако трябва да се присъедините към A
и B
но изберете само данни от B
, оптимизаторът може да премахне A
от плана на заявката изцяло, ако е имало ограничение на външния ключ (това нещо е много полезно, когато имате полезни изгледи, които се обединяват в повече таблици, отколкото е необходимо на текущата ви заявка, защото не е нужно да търгувате с разходи за производителност на допълнителните съединения срещу повторното използване на код от използване на съществуващ изглед). Те също са полезни, когато правите неща като използване на неща като пренаписване на заявка, за да пренапишете заявка, за да използвате материализиран изглед в система от хранилище за данни/ DSS.
Tom Kyte има презентация Metadata Matters, която говори за това как различни видове ограничения, заедно с други части от метаданни, могат да повлияят на оптимизатора.