Optymalizowanie wydajności tempdb

Rozmiar i położenie fizycznej tempdb bazy danych może mieć wpływ na wydajność systemu.Na przykład jeśli rozmiar, który jest zdefiniowany dla tempdb jest zbyt mały, część obciążenia przetwarzaniem systemowym można przyjąć z autogrowing tempdb rozmiar wymagany do obsługi obciążenia przy każdym ponownym uruchomieniu programu SQL Server. Aby uniknąć tego zapasu przez zwiększenie rozmiarów pliku danych i dziennika tempdb.Aby uzyskać informacje na temat określania odpowiedniej ilości miejsca na dysku wymaganą dla tempdb zobacz Capacity Planning for tempdb.

tempdb rozmiar i położenie zalecenia

Aby osiągnąć tempdb optymalną wydajność, zaleca się następującą konfiguracja dla tempdb w środowisku produkcyjnym:

  • zestaw modelu odzyskiwanie z tempdb do SIMPLE.Model ten automatycznie reclaims dziennika miejsca, aby zachować mały wymagania dotyczące ilości wolnego miejsca na dysku.

    Aby uzyskać więcej informacji zobacz ALTER DATABASE języka Transact-SQL) lub Jak Wyświetl lub zmień modelu odzyskiwanie bazy danych (SQL Server Management Studio).

  • Zezwalaj na pliki tempdb automatycznie rosnąć stosownie do potrzeb.Umożliwia to plik, aby powiększyć aż dysk jest zapełniony.

    Uwaga

    Jeśli środowiska produkcyjnego nie można tolerować potencjał limity czas aplikacji, które mogą wystąpić podczas operacji autogrow, preallocate miejsca, aby umożliwić oczekiwanego obciążenia pracą.

  • Ustawić rozsądny rozmiar w celu uniknięcia pliki bazy danych tempdb z rosnącym przez zbyt małą wartość przyrost rozmiaru pliku.Jeżeli przyrost pliku jest zbyt mały, w porównaniu z ilością danych, który jest zapisywany tempdb, tempdb może być stale rozwinięcie.Będzie to miało wpływ na wydajność.Firma Microsoft zaleca następujące ogólne wskazówki ustawiania przyrostu FILEGROWTH tempdb plików.

    rozmiar pliku tempdb

    Przyrost FILEGROWTH

    0-100 MB

    10 MB

    100 to 200 MB

    20 MB

    200 MB lub więcej

    10%*

    * Być może trzeba zmienić tę wartość procentową opartą na szybkości podsystemu wejścia/wyjścia, w którym znajdują się pliki tempdb.Aby uniknąć potencjalnych zatrzaśnięcie limity czas, zaleca się ograniczenie operacji autogrow około dwóch minut.Na przykład, jeśli podsystem wejścia/wyjścia można zainicjować pliku na 50 MB na sekundę, wartość przyrostu FILEGROWTH powinny być zestaw maksymalnie 6 GB, niezależnie od rozmiaru pliku tempdb.Jeśli to możliwe należy użyć Inicjowanie pliku błyskawiczne bazy danych , aby zwiększyć wydajność operacji autogrow.

  • Miejsce na wszystkie pliki tempdb preallocate przez ustawienie rozmiaru pliku na wartość wystarczająco duża, aby uwzględnić wszystkie zdarzenia typowe obciążenie pracą w środowisku.Dzięki temu tempdb z rozwijanie zbyt często, co może wpłynąć na wydajność.Bazy danych tempdb powinny być zestaw do autogrow, jednak opcja ta powinna być używana, aby zwiększyć ilość miejsca na dysku dla wyjątków niezaplanowane.

  • Utworzyć wiele plików tak, aby zmaksymalizować dysku przepustowości.Korzystanie z wielu plików zmniejsza tempdb rywalizacji magazynowania i wydajność znacznie lepiej skalowalność.Jednak nie należy tworzyć zbyt wiele plików, ponieważ może to zmniejszyć wydajność i zwiększyć obciążenie związane z zarządzania.Jako ogólne wskazówki należy utworzyć jeden plik danych dla każdego PROCESORA na serwerze kont (dla dowolnego maski koligacji ustawienia) a następnie dostosować liczbę plików górę lub niedziałający, w razie potrzeby.Należy zauważyć, że PROCESOR dwurdzeniowy jest uważana za dwa procesory.

  • Sprawdź każdy taki sam rozmiar pliku danych, to zapewnia optymalną wydajność proporcjonalne wypełnienia.

  • Umieszczanie danych tempdb na szybkiego podsystemu We/Wy.Użycie dysku striping w przypadku wielu bezpośrednio podłączone dyski.

  • Umieszczanie danych tempdb na dyski, które różnią się od tych, które są używane przez użytkownika baz danych.

Modyfikowanie tempdb rozmiar i parametry wzrostu

Można zmodyfikować parametry wzrostu rozmiaru i pliku tempdb plików danych lub dziennika przy użyciu jednej z następujących metod:

Za każdym razem, gdy tworzony jest tempdb używane są wartości dla parametrów rozmiaru i filegrowth plików.Na przykład jeśli zwiększenie rozmiaru pliku danych tempdb 20 MB i zwiększyć przyrost rozmiaru pliku do 15 procent, nowe wartości bezpośrednio uwzględnione.Jeśli dalsze działania transakcyjnych powodują tempdb rośnie, rozmiar 20 MB zwróci plik danych przy każdym ponownym uruchomieniu programu SQL Server.

Przeglądanie tempdb rozmiar i parametry wzrostu

Parametry wzrostu rozmiaru i pliku tempdb plików danych lub dziennika można wyświetlać przy użyciu jednej z następujących metod:

  • Program SQL Server Management Studio

  • Uruchomiona następująca kwerenda.

    SELECT 
        name AS FileName, 
        size*1.0/128 AS FileSizeinMB,
        CASE max_size 
            WHEN 0 THEN 'Autogrowth is off.'
            WHEN -1 THEN 'Autogrowth is on.'
            ELSE 'Log file will grow to a maximum size of 2 TB.'
        END,
        growth AS 'GrowthValue',
        'GrowthIncrement' = 
            CASE
                WHEN growth = 0 THEN 'Size is fixed and will not grow.'
                WHEN growth > 0 AND is_percent_growth = 0 
                    THEN 'Growth value is in 8-KB pages.'
                ELSE 'Growth value is a percentage.'
            END
    FROM tempdb.sys.database_files;
    GO
    

Wykrywanie błędów We/Wy ścieżka dysku

zestaw Funkcja suma kontrolna opcji PAGE_VERIFY wykryje uszkodzenia spowodowane przez błędy ścieżka We/Wy dysku stron bazy danych i raportów tych błędów, takie jak MSSQLSERVER_823, MSSQLSERVER_824, lub MSSQLSERVER_825, dziennik błędów programu SQL. Błędy ścieżka We/Wy dysku może być przyczyną bazę danych problemów uszkodzenia i są zazwyczaj spowodowane awarie zasilania lub awarii sprzętu dysku, które występują w czas strona jest zapisywany na dysku.Aby uzyskać więcej informacji na temat błędy We/Wy zobacz Podstawy Microsoft SQL Server we/wy, rozdział 2.

We wcześniejszych wersjach SQL Server, opcja PAGE_VERIFY bazy danych jest zestaw / / / none dla tempdb bazy danych i nie mogą być modyfikowane. W SQL Server 2008, wartością domyślną dla bazy danych tempdb jest funkcja suma kontrolna dla nowych instalacji SQL Server. W przypadku uaktualniania instalacji SQL Server, wartością domyślną jest brak. Zaleca się, że użytkownik zestaw opcję PAGE_VERIFY bazy danych tempdb, aby funkcja suma kontrolna.