Ознаки
Розглянемо такий сценарій:
-
Ви використовуєте Microsoft SQL Server 2012 або SQL Server 2014 і Microsoft SQL Server Data Tools (SSDT), щоб спроектувати пакет служб інтеграції SQL Server (SSDT).
-
У списку Dataflow ви використовуєте вихідний компонент, наприклад джерело OLE DB, джерело ADO.NET або джерело ODBC, щоб настроїти режим доступу до даних у команду SQL і ввести запит у вікні команди.
-
Ви натискаєте кнопку " Перегляд ", щоб переглянути результат запиту.
У цьому сценарії команда, яка використовується для попереднього перегляду, триватиме більше 30 секунд і не працює в конструкторі. Крім того, з'являється повідомлення про помилку "час очікування запиту минув".
Причина
Ця проблема виникає через те, що поріг CommandTimeout жорстко закодовано як 30 секунд для функції "зразок" у конструкторі SSIS.
Спосіб вирішення
Ця проблема була спочатку зафіксоване в цьому сукупному оновленні сервера SQL Server.
Сукупне оновлення 3 для SQL Server 2014 /en-us/help/2984923
Сукупне оновлення 1 для SQL Server 2012 з пакетом оновлень 2 (SP2) /en-us/help/2976982
Сукупне оновлення 10 для SQL Server 2012 SP1 /en-us/help/2954099
Кожне нове Сукупне оновлення для SQL Server містить усі поточні виправлення та всі виправлення системи безпеки, які були включені до попереднього сукупного оновлення. Ознайомтеся з найновішими сукупними оновленнями для сервера SQL Server:
Нотатки:
-
Перш ніж застосовувати це виправлення, настройки часу очікування буде усунуто до 30 секунд у попередньому перегляді даних для всіх компонентів SSIS.
-
Після інсталяції цього виправлення виконайте наведені нижче дії.
-
Для компонент Source-компонента ADO.NET і компонента джерела OLE DB вони вже мають властивість CommandTimeout. Ця властивість використовуватиметься у вікні "зразок даних".
-
Для всіх інших компонентів, які мають функцію "зразок даних", але не мають властивості CommandTimeout :
-
Якщо в розділі "системний розділ реєстру" є значення " Дата й час " у значенні DWORD:\\HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\SSIS\Preferences Функція SSIS використовуватиме це значення під час роботи під час ознайомлювального періоду.
-
Якщо значення DatapredatetimeoutDWORD відсутнє, функція SSIS все ще використовує 30 секунд.
-
-
Стан
Корпорація Майкрософт підтвердила, що це проблема в продуктах Microsoft, перелічених у розділі "застосовується до".