Re: MS SQL 2000 - Wadliwy optymalizator? (dlugie pytanie...)
Marcin A. Guzowski - 10-08-2006 01:48
Jacek napisał(a): > Witam serdecznie, > > Trafiłem na pewien "nielogiczny" problem w zachowaniu MS SQL 2000 zwiazany ze > (...)
Ciekawy problem, trudno jednak to diagnozować po dość subiektywnym opisie :) Generalnie założyłeś, że winny jest wyłącznie SQL Server, a to może być tylko część prawdy.
Po 1. Zapuść trace`a na serwerze (sp_trace_create, sp_trace_setevent, sp_trace_setfilter, sp_trace_setstatus) ustaw stosunkowo sporo zdarzeń (~wszystkie :)) - jeżeli serwer się nie wyrobi to najwyżej czegoś nie zaloguje. Oczywiście narzuć filtr na odpowiedniego użytkownika. Możesz to zrobić z Profilera, tylko wtedy jest większe ryzyko utraty pewnych informacji z powodu chwilowego braku zasobów. Informacje z trace`a mogą się okazać bardzo cenne przy diagnozowaniu problemu.
Po 2. Zapuść też performance monitora obserwując zestaw statystyk wydajnościowych, który cały czas generuje SQL Server (chyba że odpaliłeś go w trybie 'sqlserver.exe -x'). To pewnie nie zdiagnozuje problemu, acz dokładniej będą znane jego objawy.
Po 3. Stwierdziłeś, że problem występuje tylko z jednej delphiowej aplikacji - przyjrzyj się jej, a zwłaszcza sposobowi, w jaki komunikuje się z bazą. SQL Server jest dość wrażliwy na kwestie odbierania przez aplikację danych (resultseta), gdyż per połączenie dysponuje wyłącznie jednym buforem wyjściowym. Jeżeli bufor się zapełni (klient nie nadąża/nie odbiera danych z dostateczną szybkością, czemu winna może być też sieć), serwer zawiesza wykonanie skompilowanego planu. Sytuacja ta jest bardzo niekorzystna dla wydajności, bo ani blokady, ani inne zasoby związane z wykonywaniem zapytania - nie są zwalnianie.
Daj znać, jak coś ustalisz.
-- Pozdrawiam, Marcin Guzowski http://guzowski.info
Jacek - 12-08-2006 01:32
Marcin A. Guzowski <tu_wstaw_moje_imie@guzowski.info> napisał(a):
[...] > Daj znać, jak coś ustalisz. >
Dzieki za wszelkie sugestie/porady - na razie nic szczególnego nie ustaliłem. Trace na naszym serwerze (na którym było OK) - nic szczególnego nie pokazuje. Na serwerze produkcyjnym klienta mam nieco ograniczone mozliwosci... Jak dojde do rozwiazania na pewno sie podziele informacja
:) Opis moze i wyglada na subiektywny, ale wydaje mi sie, ze wszystkie inne mozliwosci wyeliminowalem: - testowalem nie na rzeczywistej aplikacji tylko na gołej, wręcz podręcznikowej (prawie jakby z helpa przepisać)- TADOConnection, TADODataSet - nic więcej, żadnych fajerwerków w tle, które mogłyby coś mieszać - testy prowadzone zarówno zdalnie (możnaby winę na sieć zwalić) jak i po LAN-ie - wydajność maszyny ogólnie b.dobra - padała tylko przy tej problemowej proc. - wszystkie bieżące patche, MDAC wgrane po każdej ze stron - brak firewall-i - bardzo dobre (i stabilne) wykonywanie z poziomu QA
stąd subiektywizm... :)
pozdrawiam Jacek
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
jak to =?ISO-8859-2?Q?zrobi=E6=2E=2E=2E=3F_TSQL_sql_server?==?ISO-8859-2?Q?_?=
=?iso-8859-2?Q?=5BMS_SQL=5D_Czy_mo=BFna_wywo=B3a=E6_funkcje_t ylko_raz_dla?==?iso-8859-2?Q?_ca=B3ego_zbioru_=BCr=F3d=B3owego=3F?=
[MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?=
Oracle PL/SQL Wstawianie =?ISO-8859-2?Q?wynik=F3w_kolekcji_d?==?ISO-8859-2?Q?o_tabeli?=
[MSSQL] ACCESS - SQL =?ISO-8859-2?Q?B=B3ad_w_konwersji_lic?==?ISO-8859-2?Q?zb?=
=?iso-8859-2?Q?=5Bmssql=5D_Zapytania_rekurencyjne__-_czy_sk=B3adnia_sql?==?iso-8859-2?Q?_co=B6_takiego_przewiduje_=3F?=
[Oracle PL/SQL] Cursor i zapis =?ISO-8859-2?Q?rekord=F3w_do_?==?ISO-8859-2?Q?kolejnych_plik=F3w?=
=?iso-8859-2?Q?=5BMySQL=5D_Co_minimalnie_potrzebne_zeby_mie=E 6_klienta_My?==?iso-8859-2?Q?SQL_na_Linuxie=3F?=
[oracle] - Oracle SQL Developer - co to jest SID?
=?ISO-8859-2?Q?[Oracle]_Wywo=B3anie_skryptu_sh_z_PL/SQL-a=3F=3F?=
zanotowane.pldoc.pisz.plpdf.pisz.plkfia-tek.keep.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|