Mój obecny projekt będzie wysyłał zapytania do serwera sql bez przerwy i może wykorzystywać 100% pamięci lub procesora.Wykrywanie wykorzystania SQL Server za pomocą zapytania
Jak mogę sprawdzić, czy serwer jest bliski pełnego wykorzystania w procedurze przechowywanej tak, że mogę się zdecydować czy wykonać zapytania, czy nie lub zapisać niektóre ustawienia w tabeli tak, że poniższe pytania może wiedzieć obciążenie jest wysoki i zdecydować, co zrobić, aby
Jeśli nie, w jaki sposób mogę zapobiec pełnego wykorzystania serwera SQL?
Więcej informacji na temat postępowania: Teraz wiem, że nasz obecny serwer testowy może przetwarzać 40-50 zapytań na sekundę (jeden szczególnej procedury przechowywane). A teraz zdecydujemy, ile zapytań zostanie wysłanych na serwer co sekundę. Jeśli ustawimy kwotę nawet o 1 wyższą niż oczekiwana, na dłuższą metę zapytania ostatecznie wypełnią pamięć wirtualną, a klient będzie musiał okresowo restartować swoją instancję serwera sql.
oczekiwanych rezultatów (dla łowców nagród):
@memory_usage float, @cpu_usage float; /* in percentage */
Wszelkie pomysły są mile widziane. Dzięki.
Przedwczesna optymalizacja jest źródłem wszelkiego zła. – Andomar
Na podstawie twojego pytania, myślę, że cofnę się i spojrzę na alternatywne podejście. –
Po pierwsze, jeśli używasz pamięci wirtualnej na serwerze, upewnij się, że instancja ma ustawiony maksymalny rozmiar pamięci. SQL Server jest dość dobry w zarządzaniu pamięcią podręczną, więc nie powinieneś nigdy ponownie uruchamiać instancji (dla tego konkretnego problemu), chyba że bierzesz pamięć, że system operacyjny musi działać. Istnieje wiele artykułów na temat ilości pamięci opuszczającej system operacyjny, ale można zacząć od obejrzenia BOL tutaj: http://msdn.microsoft.com/en-us/library/ms178067.aspx. Jest rok 2012, ale nie jestem pewien, jakiej wersji używasz. –