Tartalomjegyzék:
Meghatározás - Mit jelent a Query Optimizer?
A lekérdezés-optimalizáló egy kritikus adatbázis-kezelő rendszer (DBMS) összetevő, amely elemzi az SQL (strukturált lekérdezési nyelv) lekérdezéseit és meghatározza a hatékony végrehajtási mechanizmusokat. A lekérdezés-optimalizáló létrehoz egy vagy több lekérdezési tervet minden lekérdezéshez, amelyek mindegyike mechanizmus lehet a lekérdezés futtatásához. A legeredményesebb lekérdezési terv kerül kiválasztásra és a lekérdezés futtatásához.
Az adatbázis-felhasználók általában nem lépnek kapcsolatba a lekérdezés-optimalizálóval, amely a háttérben működik.
A Techopedia magyarázza a Query Optimizer-t
Az SQL lekérdezések lehetnek egyszerű vagy összetett utasítások. Minden SQL utasítás minimális felhasználást igényel az értékes erőforrások, például a leolvasások és a szerver memóriája számára. A lekérdezés-optimalizáló biztosítja ezt, valamint az egyes SQL lekérdezések gyorsított végrehajtását. Például egy lekérdezés-optimalizáló generálhat lekérdezési tervek sorozatát az erőforrás költségei alapján. Az egyik lekérdezési terv magában foglalhatja egy táblázat olvasását az adatok egy részhalmazának beolvasása céljából, míg egy másik tartalmazhat táblázatindexeket a gyors adatolvasáshoz. Ezeket költség-alapú optimalizálóknak nevezzük.
A lekérdezés-optimalizáló a környezeti körülményektől függően különböző lekérdezési terveket választhat ugyanazon lekérdezéshez. Például egy felhasználó lekérdezést futtat, amely a táblázat adatainak körülbelül felét választja ki. A felhasználó akkor futtatja a lekérdezést, amikor a szerver sokféle egyidejű kapcsolattal rendelkezik. Ebben a forgatókönyvben a lekérdezés-optimalizáló dönthet úgy, hogy korlátozott erőforrások alapján egy lekérdezési tervet használ, amely felhívja a létrehozott táblázati indexeket a lekérdezés kielégítésére. Ez biztosítja a szerver minimális lefolyását a lekérdezés által. Ha ugyanazt a lekérdezést egy időben több erőforrással futtatja, a lekérdezés-optimalizáló megállapíthatja, hogy az erőforrás-korlátozás nem jelent problémát. Ebben az esetben a táblázatindexeket nem használnák, és a lekérdezés-optimalizáló lehetővé tenné a teljes táblabetöltést a szerver memóriájába.
