/ / Vykonať uloženú procedúru mnohými používateľmi súčasne trvať dlhšie na vykreslenie výsledku - sql-server, uložené procedúry

Vykonať uložené procedúry mnohými používateľmi súčasne trvať dlhšie trvanie na vykreslenie výsledku - sql-server, uložené procedúry

Mám uloženú procedúru v systéme SQL Server 2005. Keď je spustený jedným používateľom, trvá to 5 sekúnd, kým sa spustí, ale ak je vykonaný niekoľkými používateľmi, trvá to oveľa dlhšie, dokonca o viac ako 15 sekúnd.

Ako ho zlepšiť, aby sa vykonal, nezávisí od počtu používateľov?

Vďaka.

odpovede:

2 pre odpoveď č. 1

5 sekúnd je pomerne pomalé pre SQL Query,čo naznačuje, že robia spravodlivé množstvo práce (napríklad veľa disku IO). Dotaz, ktorý zahŕňa veľa disku IO, bude pravdepodobne bežať pomalšie, keď bude vykonaný niekoľkými súbežnými používateľmi kvôli zvýšenej záťaži na serveri SQL Server. Mali by ste dostať plán realizácie a pozrite sa, či môže byť dopyt 5s optimalizovaný, napr. s ďalšími indexmi.

Je tiež možné, že je na vine obviňovanie, napr. ak hľadáte exkluzívne zámky celú tabuľku a trvá 5s na spustenie, druhý dotaz spustený súbežne by musel počkať 5s pre pôvodný dotaz dokončiť vykonanie a potom zamknúť samotnú tabuľku a vykonať ďalšie 5s na vykonanie výsledkom 10s čas realizácie. 3 súbežné dotazy by trvalo 15 rokov atď ... Pozri Ako identifikovať blokovanie v serveri SQL pre veľa metód na kontrolu toho, či je alebo nie je to tak.