Tam metin sorguları performansını

Tam metin sorguları performansını artırmaya yönelik önerilerin listesi aşağıdadır.

Tam metin sorguları performansını da öyle aynı derecede bellek, disk hızı, cpu hızı ve makine Mimarisi donanım kaynakları etkilenir.

  • Temel tablo dizini kullanarak birleştirmek alter dizin yeniden.

  • Tam metin kataloğu kullanarak yeniden alter fulltext Katalog yeniden. Bu performans testi bu deyimi çalıştıran ana birleştirme tam metin dizinlerini Bu katalogda nedeniyle önce yaptığınızdan emin olun.

  • Tam metin anahtar sütunu seçtiğiniz küçük bir sütun kısıtlamak. 900 Baytlık bir sütun desteklenir, ancak bir tam metin dizini küçük anahtar sütunu kullanmanızı öneririz. intve biginten iyi performansı sağlar.

  • Bir tamsayı tam metin anahtarını kullanarak önler bir birleşim ile docideşleşme tablosu. Bu nedenle, bir tamsayı tam metin anahtarını bir sipariş büyüklük sorgu performansını artırır ve tarama performansı artırır. Tam metin anahtarını da Kümelenmiş dizin anahtarı ise ek performans avantajları sonuçlanabilir.

  • Birden çok birleştirme CONTAINS içine bir CONTAINS yüklemler. De SQL ServerCONTAINS sorguda sütun listesi belirtebilirsiniz.

  • Tam metin anahtarını veya sıralama bilgileri yalnızca gerektiriyorsa, CONTAINSTABLE veya freetexttable CONTAINS veya freetext, yerine sırasıyla.

  • Sonuçları sınırlamak ve performansı artırmak için top_n_by_rankparametresi CONTAINSTABLE ve freetexttable fonksiyonlarını. top_n_by_rankyalnızca en alakalı hits hatırlamak sağlar. Yalnızca iş senaryo tüm olası bulunmuş hatırlatarak gerektirmiyorsa, bu parametreyi kullanın (yani o does değil istemek Toplam hatırlama).

    [!NOT]

    Toplam geri çekme genellikle yasal senaryoları için gereklidir ancak performans bir e-iş gibi iş senaryoları için daha az önemli olabilir.

  • Tam metin sorgu planı uygun birleştirme planı seçilir emin olmak için denetleyin. Eğer sen-si olmak-e için bir birleştirme ipucu veya sorgu ipucu kullanın. Tam metin sorgu parametresi kullanılırsa, ilk değeri parametre sorgu planı belirler. En iyi duruma getirmek için kullanabileceğiniz sorgu ipucu istediğiniz değeri ile derlemek için sorgu zorlamak için. Bu, deterministik sorgu planı ve daha iyi performans elde etmek yardımcı olur.

  • Çok fazla tam metin dizini parçaları tam metin dizin için sorgu performansı önemli ölçüde düşmesine neden olabilir. Parça sayısını azaltmak için tam metin kataloğu yeniden Düzenle seçeneği kullanılarak yeniden alter fulltext catalog Transact-SQL deyimi. Bu ifade aslında tüm parçaları bir tek büyük parça birleştirir ve tüm geçersiz girdileri tam metin dizinden kaldırır.

  • Tam metin arama, mantıksal işleçler CONTAINSTABLE (ve, veya) belirtilen sql birleştirme veya tablo değerli işlevler (stvf) akış tam metin yürütme içinde uygulanabilir. Genellikle mantıksal işleçler karışımı sorguları sql birleştirmeler de sahip ise mantıksal işleçleri yalnızca bir tür sorgular tamamen tam metin yürütme tarafından uygulanır. Bir mantıksal işleç tam metin yürütme stvf içinde uygulanması çok sql birleşimler daha hızlı olun bazı özel dizin özelliklerini kullanır. Bu nedenle, mümkün olan durumlarda, yalnızca tek tür mantıksal işleci kullanarak sorguları çerçeve, öneririz.

  • Sorgu en iyi duruma getiricisi kullanılacağını yazıldığında ilişkisi seçici predications içeren uygulamalar için en iyi seçmeli ilişkisel yüklemler ve unselective tam metin yüklemler kullanan sorguları gerçekleştirebilir. Bu sorgu iyileştirici bir etkin sorgu planı üretmek için yüklemi veya aralığı pushdown yararlanabilir mi karar verir. Bu yaklaşım daha kolaydır ve genellikle daha verimli olarak tam metin veri ilişkisel veri dizin.

İlgili kaynaklar

SQL Server 2008 tam metin araması: Internals ve geliştirmeler

Ayrıca bkz.

Başvuru

sys.dm_fts_memory_buffers (Transact-sql)

sys.dm_fts_memory_pools (Transact-sql)