Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

Auto_Close

Termin Definicja
Auto_Close

Auto_Close to opcja bazy danych określająca, czy silnik zwalnia zasoby po zamknięciu ostatniego połączenia z bazą.

Auto_Close jako opcja bazy danych SQL Server

Auto_Close, zapisywane w SQL Server jako opcja AUTO_CLOSE, określa zachowanie bazy danych po zakończeniu pracy ostatniego połączenia użytkownika. Gdy opcja jest włączona, aparat SQL Server może zamknąć bazę, zwolnić używane przez nią zasoby oraz usunąć jej strony z pamięci podręcznej. Pliki bazy danych pozostają jednak na dysku. Nie jest to usunięcie bazy, odłączenie plików ani zatrzymanie całej usługi SQL Server.

Przy kolejnym otwarciu połączenia do zamkniętej bazy SQL Server ponownie inicjuje dostęp do jej plików. Z punktu widzenia aplikacji baza nadal istnieje i może zostać użyta, ale pierwsze zapytanie po okresie bezczynności może wymagać dodatkowych operacji inicjalizacyjnych. Właściwość ta dotyczy konkretnej bazy danych, a nie wszystkich baz obsługiwanych przez daną instancję SQL Server.

Różnica między zamknięciem bazy a zamknięciem połączenia

Opcja AUTO_CLOSE reaguje na brak aktywnych połączeń użytkowników, a nie na samo zakończenie pojedynczego zapytania. Jeżeli aplikacja wykonuje zapytanie i nadal utrzymuje połączenie, baza nie jest traktowana jako pozbawiona użytkowników. Znaczenie ma stan połączeń rozpoznawanych przez SQL Server, dlatego wynik może różnić się w środowisku korzystającym z puli połączeń. Pula może utrzymywać fizyczne połączenie otwarte nawet wtedy, gdy aplikacja chwilowo nie wykonuje żadnych zapytań.

Nie należy utożsamiać AUTO_CLOSE z poleceniem SHUTDOWN, zatrzymaniem usługi systemowej ani z opcją AUTO_SHRINK. AUTO_CLOSE dotyczy cyklu aktywności konkretnej bazy, natomiast AUTO_SHRINK odnosi się do automatycznego zmniejszania plików danych lub dziennika transakcji. Są to niezależne ustawienia i ich działanie nie powinno być oceniane na podstawie samej nazwy zawierającej słowo „auto”.

Wpływ ustawienia na pamięć i czas odpowiedzi

Włączenie AUTO_CLOSE może ograniczać czasowe zajęcie zasobów przez bazę, gdy baza jest używana sporadycznie i przez długie okresy nie ma do niej żadnych połączeń. Takie zachowanie ma jednak koszt. Przy każdym ponownym użyciu SQL Server musi otworzyć bazę i odtworzyć część stanu potrzebnego do obsługi zapytań. Powtarzające się zamykanie i otwieranie może zwiększać opóźnienia oraz powodować dodatkowe operacje wejścia i wyjścia.

W bazie używanej regularnie, na przykład przez aplikację biurową działającą przez cały dzień, częste automatyczne zamykanie zwykle utrudnia stabilną pracę. Objawem może być wolniejsze pierwsze zapytanie po bezczynności, nieregularny czas odpowiedzi albo dodatkowe obciążenie widoczne w monitoringu instancji. Sama obecność opcji AUTO_CLOSE nie dowodzi jeszcze awarii. Należy sprawdzić częstotliwość otwierania bazy, sposób zarządzania połączeniami oraz to, czy aplikacja nie utrzymuje połączeń dłużej, niż zakłada jej konfiguracja.

Sprawdzanie i zmiana AUTO_CLOSE w SQL Server

Stan opcji można odczytać z widoku katalogowego sys.databases. Kolumna is_auto_close_on wskazuje, czy dla danej bazy ustawiono automatyczne zamykanie. Przykładowe zapytanie diagnostyczne ma postać:

SELECT name, is_auto_close_on FROM sys.databases;

Zmianę ustawienia wykonuje się poleceniem ALTER DATABASE skierowanym do konkretnej bazy, na przykład ALTER DATABASE [NazwaBazy] SET AUTO_CLOSE OFF; albo ALTER DATABASE [NazwaBazy] SET AUTO_CLOSE ON;. Przed zmianą trzeba potwierdzić nazwę bazy i uprawnienia administratora. W diagnostyce należy również przeanalizować logi SQL Server, aktywne sesje, konfigurację puli połączeń oraz czas odpowiedzi aplikacji. Jeżeli problem dotyczy laptopa lub komputera PC używanego jako stanowisko pracy, przyczyną może być także lokalna konfiguracja SQL Server, uszkodzenie plików, brak wolnego miejsca albo niestabilne połączenie z usługą. Neutralna naprawa powinna obejmować ustalenie rzeczywistego stanu opcji, wykonanie kopii zapasowej przed zmianami oraz weryfikację działania aplikacji po modyfikacji.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę