Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 22757|Відповідь: 0

[Джерело] Вирішує проблему, що збережені процедури виконуються швидко, але виклики програм повільні

[Копіювати посилання]
Опубліковано 21.05.2018 13:55:48 | | |
За останні два дні я зіткнувся з досить розчаровуючою проблемою: у аналізаторі запитів SQL Server 2012 виконується збережена процедура приблизно з 120 рядків,
Швидкість дуже ідеальна, і близько 500 записів даних можна відфільтрувати та зафіксувати менш ніж за 1 секунду.
Однак при виклику в програмному коді C# з'являється тайм-аут з'єднання. Встановіть CommandTimeout на 300, і відображення займе близько 3 хвилин.
Я перевірив код кілька разів і не знайшов жодних помилок. Проблема залишається.

Аналіз причин:
1. Оскільки швидкість виконання в аналізаторі запитів висока і обсяг даних невеликий.
2. Програму лише виклик — це повільно.
3. Встановіть параметр CommandTimeout, і результат можна буде відобразити, але це займе багато часу.

Підсумовуючи, попередньо зроблено висновок, що проблема полягає в коді C#. Але після огляду не було жодної вигоди.

Перевірте цю інформацію на Baidu.
Нарешті знайшов подібний інформаційний пост на форумі CSDN. Один із користувачів у відповіді написав: «Можливо, план впровадження вже закінчився».
Це справді розбудило мене у сні.

Виконайте негайно на аналізаторі запитів:

Тестував програму ще раз — цього разу вона нарешті спрацювала. Швидкість дуже задовільна.

Аналіз причин:
Оскільки збережені процедури попередньо компільовані, план виконання генерується при першому виконанні, який використовується при наступних виконаннях (якщо не вказано перекомпіляцію), а не генерувати план виконання щоразу.
Коли структура об'єкта, що задіяна у збереженій процедурі, коригується або пов'язані дані суттєво змінюються, що може зробити початковий план непридатним для поточного статус-кво (закінчення плану виконання), збережену процедуру слід перекомпіллювати.

Нарешті, додайте код збереженої процедури:







Попередній:Подяжуйте один вихідний код промо-сторінки APP, адаптивний, дуже красивий і щедрий!
Наступний:C# Фреймворк з відкритим кодом (перевидання)
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com