Triệu chứng
Hãy cân nhắc các trường hợp sau:
- Bạn sử dụng Microsoft SQL Server 2012 hoặc SQL Server 2014 và Microsoft Công cụ Dữ liệu SQL Server (SSDT) để thiết kế Gói Dịch vụ Tích hợp SQL Server (SSIS).
- Trong Tác vụ Dòng dữ liệu, bạn sử dụng cấu phần nguồn chẳng hạn như nguồn OLE DB, nguồn ADO.NET hoặc nguồn ODBC để đặt chế độ Truy nhập Dữ liệu thành Lệnh SQL và nhập truy vấn vào hộp lệnh.
- Bạn bấm Xem trước để xem kết quả của truy vấn.
Trong trường hợp này, lệnh được xem trước sẽ chạy lâu hơn 30 giây và không thành công trong trình thiết kế. Ngoài ra, bạn sẽ nhận được lỗi tương tự như "Đã hết hạn Thời gian chờ Truy vấn".
Nguyên nhân
Sự cố này xảy ra vì ngưỡng CommandTimeout được mã hóa cố định là 30 giây đối với tính năng xem trước trong Trình thiết kế SSIS.
Giải pháp
Sự cố này được khắc phục lần đầu tiên trong bản cập nhật tích lũy tiếp theo của SQL Server.
Cập nhật Tích lũy 3 cho SQL Server 2014 /en-us/help/2984923
Bản cập nhật tích lũy 1 cho SQL Server 2012 SP2 /en-us/help/2976982
Cập nhật tích lũy 10 cho SQL Server 2012 SP1 /en-us/help/2954099
Giới thiệu về các bản cập nhật tích lũy cho SQL Server
Mỗi bản cập nhật tích lũy mới dành cho SQL Server chứa tất cả các bản sửa lỗi nóng và bản sửa lỗi bảo mật được tích hợp trong bản cập nhật tích lũy trước đó. Xem các bản cập nhật tích lũy mới nhất cho SQL Server:
- Bản cập nhật tích lũy mới nhất cho SQL Server 2014
- Bản cập nhật tích lũy mới nhất cho SQL Server 2012 SP2
- Bản cập nhật tích lũy mới nhất cho SQL Server 2012 SP1
Lưu ý:
Trước khi bạn áp dụng hotfix này, thiết đặt hết thời gian chờ được cố định là 30 giây ở dạng xem trước dữ liệu cho tất cả các cấu phần SSIS.
Sau khi bạn áp dụng hotfix này:
Đối với ADO.NET phần nguồn và cấu phần nguồn OLE DB, chúng đã có thuộc tính CommandTimeout. Thuộc tính này sẽ được sử dụng trong xem trước dữ liệu.
Đối với tất cả các cấu phần khác có tính năng xem trước dữ liệu nhưng không có thuộc tính CommandTimeout:
- Nếu có giá trị DWORD: DataPreviewTimeout dưới khóa đăng ký hệ thống:\\HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\SSIS\Preferences SSIS sẽ sử dụng giá trị đó làm hết thời gian chờ trong quá trình xem trước.
- Nếu không có giá trị DWORD DataPreviewTimeout, SSIS vẫn sử dụng 30 giây.
Trạng thái
Microsoft đã xác nhận rằng đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong mục "áp dụng cho".