/ / Виконання збереженої процедури багатьма користувачами одночасно потребує більшої тривалості для відображення результату - sql-сервер, зберігаються процедури

Багато користувачів виконують збережену процедуру одночасно, щоб отримати результат - SQL-сервер, збережені процедури

У мене зберігається процедура в SQL Server 2005. Коли вона виконується одним користувачем, потрібно 5 секунд. Але коли вона виконується кількома користувачами, це займає набагато більше часу, навіть більше 15 секунд.

Як покращити його виконання, не залежачи від кількості користувачів?

Дякую.

Відповіді:

2 для відповіді № 1

5 секунд є відносно повільним для запиту SQL,вказуючи на те, що він виконує чималу кількість роботи (наприклад, багато дискового вводу-виводу). Запит, що включає велику кількість вводу-виводу на диску, швидше за все, буде виконуватися повільніше, коли його виконують кілька одночасних користувачів через збільшене навантаження на SQL Server. Ви повинні отримати виконання і подивіться, чи можна оптимізувати запит 5s, напр. з додатковими індексами.

Можливо також, що винуватість блокування, напр.якщо ви запитуєте ексклюзивний блокуючий всю таблицю і займаєте 5 секунд для запуску, другий запуск запиту одночасно повинен зачекати 5 секунд, поки вихідний запит не закінчиться, а потім заблокує саму таблицю та займе додаткові 5 секунд для виконання 10 секунд час виконання. 3 одночасних запити зайняли б 15 секунд тощо ... Див Як визначити блокування в SQL Server для купи методів, щоб перевірити, чи це так.