Aracılığıyla paylaş


Performans ayarlama ve en iyi duruma getirme (Bu bağlantı, bir tam metin dizinleri

Tam metin dizini oluşturmayı ve tam metin sorguları için performans bellek, disk hızı, CPU hızı ve makine mimarisi gibi donanım kaynakları etkilediği.Donanım kaynağı sınırlarını daha tam metin dizin oluşturma performansını ana nedeni şudur:

  • Filtre arka plan programı ana bilgisayar işlemi (fdhost.exe), CPU kullanımını veyaSQL Serverişlem (sqlservr.exe) olduğu için yüzde 100'e yakın, CPU olan performans sorunu.

  • Ortalama disk Bekleyen kuyruk uzunluğu kafalarını disk sayısını iki katından fazla ise, disk üzerinde bir vardır.Ayrıdır tam-metin kataloglar oluşturmak için birincil geçici olanSQL Serververitabanı dosyalarını ve günlüklerini inceleyin.Günlükleri, veritabanı dosyaları ve tam metin katalogları ayrı bir disk yerleştirin.Daha hızlı disk satın alma ve RAID kullanarak da dizin oluşturma performansını yardımcı olur.

  • (3 GB sınırına) fiziksel bellek azalması, bellek performans sorunu olabilir.Fiziksel bellek kısıtlamaları olası tüm sistemlerde, 32-bit sistemlerde, sanal bellek baskısı tam metin dizinlemeyi kapalı düşürebilir.

    Not

    Başlangıç olarakSQL Server 2008tam-metin alt yapısı, AWE bellek kullanabilir, tam metin alt yapısı parçası olduğu, sqlservr.exe.

Sistem hiçbir donanım sorunları varsa, tam metin araması dizin oluşturma performansını, genellikle aşağıdakilere bağlıdır:

  • Ne kadar sürerSQL Serveroluşturma toplu işlemi tam metin.

  • Filtre arka plan, bu toplu işlemi ne kadar çabuk tüketebilir.

Not

Tam tersine popülasyon, artan, el ile ve otomatik değişiklik izleme popülasyon hızlı hızı elde etmek için donanım kaynakları en üst düzeye çıkarmak için tasarlanmıştır.Bu nedenle, bu ayarlama önerileri için tam metin dizin oluşturma performansını artırmak değil.

popülasyon tamamlandığında, son mektup birleştirme işlemi dizin parçaları birlikte bir ana tam metin dizini birleştiren tetiklenir.Bu gelişmiş sorgu performansı yalnızca ana dizini bir dizin parça sayısı yerine sorgulanmasını gerekiyor ve ilgi sıralaması için daha iyi istatistik puanlama sistemi kullanılabilir olur.Büyük miktarda veri yazılmış olmalı ve dizin parçaları birleştirildiğinde, gelen sorguları engellemez, ancak okumak için ana dizin birleştirme, I/O yoğun olabileceğini unutmayın.

Important noteImportant Note:

Denetim sırasında işlem günlüğünün kesilmesi geciktirme büyük miktarda veri birleştirme şablonu uzun süren bir işlem oluşturabilir.Bu durumda, Tam kurtarma modeli altında işlem günlüğü önemli ölçüde büyüme.En iyi yöntem olarak, önce yeniden düzenleme tam kurtarma modeli kullanan bir veritabanı büyük bir tam metin dizini olun, işlem günlüğü uzun süren bir işlem için yeterli alanı içerir.Daha fazla bilgi için bkz: Işlem günlüğü dosyasının boyutunu yönetme.

Tam metin dizinleri performansını ayarlama

, Tam metin dizinlerini performansını en üst düzeye çıkarmak için aşağıdaki en iyi yöntemleri uygulayın:

  • Tüm işlemciler ve en yüksek, çekirdek kullanmak içinsp_configure ‘ max full-text crawl ranges’ CPU sayısı sistem.Bu yapılandırma seçeneği hakkında bilgi için bkz:tam metin gezinme aralık seçeneği en büyük.

  • Emin temel tablo kümelenmiş dizini vardır.Kümelenmiş dizin için ilk sütun bir tamsayı veri türünü kullanın.Kümelenmiş dizin ilk sütunda GUID kullanmaktan kaçının.Bir multi-aralık popülasyon kümelenmiş dizin en yüksek üretebilir popülasyon hızı.Tam metin olarak hizmet veren sütun öneririz anahtar bir tamsayı veri türü olabilir.

  • Temel tablo istatistiklerini kullanarak güncelleştirmegüncelleştirme istatistikleri deyim. Daha önemlisi, kümelenmiş dizin veya tüm bir popülasyon için tam metin anahtarını istatistikleri.Bu bir multi-aralık yardımcı popülasyon iyi tablo bölümleri oluşturmak için.

  • İkincil bir dizin oluşturmak birtimestampartan performansını artırmak istiyorsanız, sütun popülasyon.

  • Büyük birden çok CPU bilgisayar üzerinde tam bir popülasyon gerçekleştirmeden önce ayarlayarak arabellek havuzu boyutunu geçici olarak sınırlamanız önerilirmax server memorydeğerine bırakın yeterli bellek fdhost.exe işlem ve işletim sistemi kullanılıyor.Daha fazla bilgi için "Bu konuda daha sonra filtre arka plan programı ana bilgisayar işlemi (fdhost.exe), bellek gereksinimlerini tahmin etme" konusuna bakın.

Full popülasyon performans sorunlarını giderme

Performans sorunlarını tanılamak için tam metin gezinme günlükleri olup olmadığına bakın.Gezinme günlükleri hakkında bilgi için bkz:Tam metin hataları giderme popülasyon (gezin)).

Tam örneğin alınma olasılığını performansını tatmin edici değilse, sorun giderme aşağıdaki sırada izlenmesi önerilir.

Fiziksel bellek kullanımı

Tam metin doldurma sırasında fdhost.exe veya sqlservr.exe bellek azalmaya veya bellek yetersiz olabilir.Tam metin gezinme, günlük fdhost.exe sık sık yeniden başlatılıyor veya hata kodu 8007008 Bu işlemlerden birini geldiğini iade edilen, bellek çalıştığını gösterir.Fdhost.exe dökümleri, özellikle de büyük birden çok CPU üreten, bilgisayar çalışan bellek yetersiz.

Not

Tam metin gezinme tarafından kullanılan bellek arabelleği hakkında bilgi edinmek için bkz:sys.dm_fts_memory_buffers (Transact-SQL).

Olası nedenler şunlardır:

  • Sırasında tam bir popülasyon kullanılabilir fiziksel bellek miktarı sıfır ise,SQL Serverarabellek havuzu kullanan büyük fiziksel bellek sistem.

    Sqlservr.exe işlemi, yapılandırılan en fazla sunucu belleği en çok arabellek havuzu için tüm kullanılabilir belleği edinmek çalışır.,en fazla sunucu belleği Tahsisat koşulları çok büyük, yetersiz bellek, paylaşılan bellek ayırma hatası oluşabilir fdhost.exe işlem. için

    Not

    Birden çok CPU bilgisayarda bir 64-yönlü IA64 bilgisayar gibi bir tam metin doldurma sırasında fdhost.exe veya sqlservr.exe arabellek havuzu bellek çakışması oluşabilir.Paylaşılan bellek neden toplu iş iş deneme ve disk bellek dökümleri fdhost.exe işlemi tarafından oluşturulan yetersiz.

    Ayarlayarak bu sorunu çözmeken fazla sunucu belleği değerinde SQL Serverhavuzu uygun arabellek.Daha fazla bilgi için "Bu konuda daha sonra filtre arka plan programı ana bilgisayar işlemi (fdhost.exe), bellek gereksinimlerini tahmin etme" konusuna bakın.Tam metin dizinleme için kullanılan toplu iş boyutunu küçültme de yardımcı olabilir.

  • Bir disk belleği sorunu

    Yetersiz belleği dosyası boyutu, gibi sınırlı büyüme, küçük bir sayfa dosyasıyla olan bir sistemde bellek yetersiz çalışmasına sqlservr.exe ve fdhost.exe de neden olabilir.

    Gezinme günlükleri değil göstermek bellekle ilgili tüm hatalar, bu ise büyük olasılıkla performans olduğunu yavaş yüzünden aşırı disk belleği.

Filtre arka plan programı ana bilgisayar işlemi (fdhost.exe), bellek gereksinimlerini tahmin etme

Fdhost.exe işlem bir popülasyon için gerekli bellek miktarını bağlıdır çoğunlukla tam-metin gezinme aralıkları kullanır, gelen paylaşılan bellek (ISM) boyutunu ve en yüksek ISM örnekleri.

Filtre arka plan programı ana bilgisayar tarafından kullanılan bellek (bayt cinsinden) miktarını kabaca aşağıdaki formülü kullanarak tahmin edilecek:

number_of_crawl_ranges * ism_size * max_outstanding_isms * 2

Yukarıdaki formülde değişkenlerin varsayılan değerleri aşağıdaki gibidir:

Variable

Varsayılan değer

number_of_crawl_ranges

CPU sayısı

ism_size

X 86 bilgisayarlar için 1 MB

4 MB, 8 MB ya da bağlı olarak toplam fiziksel bellek 64 bilgisayarın x için 16 MB

max_outstanding_isms

x 86 bilgisayarlar için 25

x 64 bilgisayarlar için 5

Aşağıdaki tablo fdhost.exe bellek gereksinimlerini tahmin etme konusunda yönergeler sunar.Bu tablodaki formüller aşağıdaki değerleri kullanın:

  • F, tahmini bellek (MB) cinsinden fdhost.exe tarafından gerekli olduğu.

  • T, toplam fiziksel bellek (MB) cinsinden sistemde kullanılabilir olduğu.

  • Men iyi olduğu,en fazla sunucu belleği ayarı.

Important noteImportant Note:

Formüller hakkında önemli bilgiler için bkz:1, 2, and 3, below.

Platform

MB fdhost.exe bellek gereksinimlerini tahmin etme;F1

En fazla sunucu belleği hesaplamak için formül —M2

devre dışı AWE ile x 86

F=Number of crawl ranges* 50

M=minimum(T, 2000)–F 500

AWE etkinleştirilmiş olan x 86

F=Number of crawl ranges* 50

M=TF 500

x 64 veya IA643

F=Number of crawl ranges* 10 * 8

M=TF 500

1 Birden çok tam örneğin alınma olasılığını sürüyor, ayrıca F1, her fdhost.exe bellek gereksinimlerini hesaplamak F2ve diğerleri.Then calculate M as T**–** sigma**(Fi)**.

2. Diğer işlemler için gereken bellek tahmini 500 MB'dir Sistem ek iş yaptığını, bu değeri uygun şekilde artırın.

3 . ism_sizekabul edilmesi için 8 MB x 64 platformları.

ÖRNEK: Fdhost.exe bellek gereksinimlerini tahmin etme

Bu örnekte, RAM ve 4 çift çekirdekli işlemci, 8 GM olan bir AMD64 bilgisayar klasörüdür.İlk hesaplama tahminleri fdhost.exe— tarafından gerekli bellekF.Gezinme aralık sayısı8.

F = 8*10*8=640

The next calculation obtains the optimal value for max server memory—M.The total physical memory available on this system in MB—T—is 8192.

M = 8192-640-500=7052

ÖRNEK: En fazla sunucu belleği ayarlama

This example uses the sp_configure and RECONFIGURETransact-SQL statements to set max server memory to the value calculated for M in the preceding example, 7052:

USE master;
GO
EXEC sp_configure 'max server memory', 7052;
GO
RECONFIGURE;
GO

En fazla sunucu bellek yapılandırma seçeneğini ayarlamak için

CPU tüketimi azaltmak Etkenler

Biz ortalama CPU tüketimi yaklaşık yüzde 30 düşük olduğunda tam örneğin alınma olasılığını performansını en iyi olmadığını bekler.Bu bölümde, CPU tüketimi etkileyen bazı Etkenler açıklanır.

  • Sayfaları yüksek bekleyin

    Bir sayfa bekleme saat yüksek olup öğrenmek, aşağıdaki çalıştırmak içinTransact-SQLdeyim:

    Execute SELECT TOP 10 * FROM sys.dm_os_wait_stats ORDER BY wait_time_ms DESC;
    

    Burada ilginizi çeken bekleme türleri aşağıdaki tabloda açıklanmaktadır.

    Tür bekleyin.

    Açıklama

    Olası çözüm

    PAGEIO_LATCH_SH (_EX veya _UP)

    Bu, bir g/Ç tıkanıklık gösterebilir durum, genellikle aynı zamanda yüksek ortalama disk sırası uzunluğu. göreceğiniz

    Tam metin dizini farklı bir dosya grubu için farklı bir diskte taşıma, g/Ç tıkanıklık azaltılmasına yardımcı.

    PAGELATCH_EX (veya _UP)

    Bu gösteriyor Çekişmesi iş parçacığı, çalıştığınız yazmak aynı veritabanı dosyası. arasında çok fazla

    Fulltext dizinin bulunduğu dosya grubu için dosya ekleme gibi çekişmesi zahmetinden yardımcı.

    Daha fazla bilgi için bkz: sys.dm_os_wait_stats (Transact-SQL).

  • Temel tablo tarama, inefficiencies

    Tüm bir popülasyon toplu işlemi oluşturmak için temel tablo tarar.Bu tablo tarama aşağıdaki senaryolarda verimsiz olabilir:

    • Tam-metin yüklenmekte satır çıkış sütunlarını yüksek bir yüzdesini temel tablo varsa, toplu işlemi oluşturmak için temel tablo sıralı, tarama performans sorunu olabilir.Bu durumda, daha küçük veri taşıma, satır kullanmavarchar(max)ornvarchar(max)olabilir Yardım.

    • Temel tablo çok parçalanmış, tarama verimsiz olabilir.Çıkış satır veri ve Dizin parçalanması, bilgisayar hakkında bilgi için bkz:sys.dm_db_partition_stats (Transact-SQL)vesys.dm_db_index_physical_stats (Transact-SQL).

      Parçalanma azaltmak için yeniden düzenlemek veya kümelenmiş dizin yeniden kullanabilirsiniz.Daha fazla bilgi için bkz: Yeniden düzenleme ve dizinleri yeniden oluşturma.

Değişiklik Geçmişi

Güncelleştirilmiş içerik

Çok miktarda altında sıralı veri üzerinde ana dizin birleştirme için hazırlama konusunda en iyi yöntem açıklayan önemli bir not eklendi tam kurtarma modeli.

"Ayarı Performance, tam metin dizinleri" bölümünde, bir büyük birden çok CPU bilgisayarda ana dizin birleştirme için hazırlama konusunda en iyi yöntem eklenir.

Clarified ve genişletilmiş "fiziksel bellek kullanımı" bölümü.