Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Az alábbi ajánlások listája segíthet javítani a teljes szöveges lekérdezések teljesítményét.
A hardveres erőforrások, mint a memória, lemez sebessége, CPU sebessége és géparchitektúra befolyásolhatják a teljes szöveges lekérdezések teljesítményét.
Az alaptábla indexének töredezettségmentesítése a REORGANIZE használatávalALTER INDEX.
A teljes szöveges katalógus átrendezése a REORGANIZE használatávalALTER FULLTEXT CATALOG. Túl sok teljes szövegű indexfragmentum jelentős leértékelési teljesítménycsökkenést okozhat. Ez az állítás minden töredéket egyetlen, nagyobb töredékbe egyesíti indexenként, eltávolítva az összes elavult előfordulási információt. Győződjön meg arról, hogy ezt az utasítást a teljesítményteszt előtt futtatja, mert az utasítás futtatása a katalógusban lévő teljes szövegű indexek fő egyesítését idézi elő.
Korlátozza a teljes szöveges kulcsoszlopok kiválasztását egy kis oszlopra. Bár támogatott egy 900 bájtos oszlop, egy kisebb kulcsoszlopot használj egy teljes szöveges indexben. int és bigint biztosítja a legjobb teljesítményt.
Egész számú teljes szöveges kulcs használata elkerüli a docid leképezési táblával való csatlakozást, ami javítja a lekérdezési és crawl teljesítményét. További teljesítményjavítások lehetségesek, ha a teljes szöveges kulcs egyben a klaszterelt indexkulcs is.
Több CONTAINS predikátumot egyesítsünk egy
CONTAINSpredikátumba. Az SQL Server-ben megadhatod a lekérdezésbenCONTAINSoszloplistát.Ha csak teljes szöveges keresési kulcs- vagy rangsorinformációra van szüksége, használja a CONTAINSTABLE vagy a FREETEXTTABLE függvényt a
CONTAINS, illetve aFREETEXThelyett.Az eredmények korlátozásához és a teljesítmény növeléséhez használja a
FREETEXTTABLEésCONTAINSTABLEfüggvények top_n_by_rank paraméterét. top_n_by_rank lehetővé teszi, hogy csak a legrelevánsabb találatokat hívja vissza. Ezt a paramétert csak akkor használja, ha az üzleti forgatókönyv nem követeli meg az összes lehetséges találat visszahívását (azaz nem igényel teljes visszahívást).Megjegyzés:
A teljes visszahívás általában jogi helyzetekben szükséges, de üzleti helyzetekben, például e-vállalkozásban kevésbé fontos, mint a teljesítmény.
Ellenőrizze a teljes szöveges lekérdezési tervet, és győződjön meg arról, hogy a megfelelő illesztésterv van kiválasztva. Ha kell, használjon illesztésmutatót vagy lekérdezési tippet. Ha a teljes szöveges lekérdezésben paramétert használ, a paraméter első alkalommal megadott értéke határozza meg a lekérdezéstervet. A
OPTIMIZE FORlekérdezési hint használatával kikényszerítheti, hogy a lekérdezés a kívánt értékkel forduljon le. Ez segít a determinisztikus lekérdezési terv és a jobb teljesítmény elérésében.A teljes szöveges keresés során a(z)
CONTAINSTABLE (AND, OR)elemben megadott logikai operátorok megvalósíthatók akár Transact-SQL-összekapcsolásokként, akár a teljes szöveges végrehajtás streamelő táblázatértékű függvényein (STVF) belül. Általában csak egy típusú logikai operátorral rendelkező lekérdezéseket teljes szöveges végrehajtással valósítják meg, míg a logikai operátorokat keverő lekérdezések SQL csatlakozással is rendelkeznek. A logikai operátor teljes szöveges végrehajtási STVF-ben való implementálása olyan speciális indextulajdonságokat használ, amelyek sokkal gyorsabbak, mint az SQL-illesztések. Ezért, ahol lehetséges, keretezd a lekérdezéseidet csak egyetlen logikai operátor segítségével.Olyan alkalmazásoknál, amelyek szelektív relációs predikátumokat tartalmaznak, azok a lekérdezések, amelyek szelektív relációs predikátumokat és nem szelektív teljes szöveges predikátumokat használnak, akkor teljesíthetnek a legjobban, ha a lekérdezésoptimalizálót használjuk. Ez a megközelítés lehetővé teszi a lekérdezésoptimalizáló számára, hogy eldöntse, kihasználhatja-e a predikátumot vagy a tartomány pushdown-t hatékony lekérdezési terv létrehozásához. Ez a megközelítés egyszerűbb és gyakran hatékonyabb, mint a relációs adatok teljes szöveges adatként való indexelése.
Kapcsolódó erőforrások
SQL Server 2008 Teljes szöveges keresés: Belső funkciók és fejlesztések