Udostępnij za pomocą


Konfiguracja serwera: minimalna ilość pamięci na zapytanie

Dotyczy:SQL Server

W tym artykule opisano sposób konfigurowania min memory per query opcji konfiguracji serwera w programie SQL Server przy użyciu programu SQL Server Management Studio lub Transact-SQL. Opcja min memory per query określa minimalną ilość pamięci (w kilobajtach), która ma być przydzielana do wykonywania zapytania. Jest to również nazywane minimalnym przydziałem pamięci. Jeśli na przykład min memory per query ustawiono wartość 2048 KB, zapytanie ma gwarancję uzyskania co najmniej tej ilości całkowitej pamięci. Wartość domyślna to 1024 KB. Minimalna wartość 512 KB, a maksymalna to 2147 483 647 KB (2 GB).

Ograniczenia

Ilość minimalnej pamięci na zapytanie ma pierwszeństwo przed opcją tworzenia pamięci przez indeks . Jeśli zmodyfikujesz obie opcje, a pamięć tworzenia indeksu jest mniejsza niż minimalna ilość pamięci na zapytanie, zostanie wyświetlony komunikat ostrzegawczy, ale wartość jest ustawiona. Podczas wykonywania zapytania zostanie wyświetlone kolejne podobne ostrzeżenie.

Rekomendacje

Ta opcja jest opcją zaawansowaną i powinna zostać zmieniona tylko przez doświadczonych specjalistów w dziedzinie bazy danych.

Procesor zapytań programu SQL Server próbuje określić optymalną ilość pamięci do przydzielenia do zapytania. Minimalna ilość pamięci na zapytanie umożliwia administratorowi określenie minimalnej ilości pamięci odbieranej przez pojedyncze zapytanie. Zapytania zwykle otrzymują więcej pamięci niż ta, jeśli mają operacje skrótu i sortowania na dużej ilości danych. Zwiększenie wartości minimalnej pamięci na zapytanie może zwiększyć wydajność niektórych małych i średnich zapytań, ale może to prowadzić do zwiększenia konkurencji dla zasobów pamięci. Minimalna ilość pamięci na zapytanie obejmuje pamięć przydzieloną do operacji sortowania.

Nie ustawiaj zbyt dużej opcji minimalnej pamięci na konfigurację serwera zapytań, zwłaszcza w przypadku bardzo zajętych systemów, ponieważ zapytanie musi czekać1 , aż będzie można zabezpieczyć żądaną minimalną pamięć lub dopóki wartość określona w opcji konfiguracji serwera oczekiwania kwerendy nie zostanie przekroczona. Jeśli ilość pamięci jest dostępna niż określona minimalna wartość wymagana do wykonania zapytania, zapytanie może korzystać z dodatkowej pamięci, jeśli pamięć może być używana skutecznie przez zapytanie.

1 W tym scenariuszu typ oczekiwania to zazwyczaj RESOURCE_SEMAPHORE. Aby uzyskać więcej informacji, zobacz sys.dm_os_wait_stats.

Permissions

Wykonywanie uprawnień bez sp_configure parametrów lub tylko pierwszy parametr jest domyślnie udzielany wszystkim użytkownikom. Aby wykonać sp_configure przy użyciu obu parametrów w celu zmiany opcji konfiguracji lub uruchomienia RECONFIGURE instrukcji, użytkownik musi mieć uprawnienie ALTER SETTINGS na poziomie serwera. Uprawnienie ALTER SETTINGS jest niejawnie przechowywane przez administrator systemu i administrator serwera stałe role serwera.

Korzystanie z programu SQL Server Management Studio

  1. W Eksploratorze obiektów kliknij prawym przyciskiem myszy serwer i wybierz polecenie Właściwości.

  2. Wybierz węzeł Pamięć .

  3. W polu Minimalna ilość pamięci na zapytanie wprowadź minimalną ilość pamięci (w kilobajtach), która ma być przydzielana do wykonywania zapytania.

Korzystanie z Transact-SQL

  1. Połącz się z silnikiem bazy danych.

  2. Na pasku Standardowym wybierz pozycję Nowe zapytanie.

  3. Skopiuj poniższy przykład i wklej go w oknie zapytania, a następnie wybierz pozycję Wykonaj. W tym przykładzie pokazano, jak użyć sp_configure , aby ustawić wartość min memory per query opcji 3500 kb.

    USE master;
    GO
    
    EXECUTE sp_configure 'show advanced options', 1;
    GO
    
    RECONFIGURE;
    GO
    
    EXECUTE sp_configure 'min memory per query', 3500;
    GO
    
    RECONFIGURE;
    GO
    
    EXECUTE sp_configure 'show advanced options', 0;
    GO
    
    RECONFIGURE;
    GO
    

Postępuj zgodnie z instrukcjami: po skonfigurowaniu minimalnej ilości pamięci na zapytanie

Ustawienie zostanie zastosowane natychmiast bez ponownego uruchomienia serwera.