Symptome
Nehmen Sie folgendes Szenario an:
- Sie verwenden Microsoft SQL Server 2012 oder SQL Server 2014 und Microsoft SQL Server Data Tools (SSDT), um ein SSIS-Paket (SQL Server Integration Services) zu entwerfen.
- Im Datenflusstask verwenden Sie eine Quellkomponente wie OLE DB-Quelle, ADO.NET Quelle oder ODBC-Quelle, um den Datenzugriffsmodus auf SQL-Befehl festzulegen und eine Abfrage in das Befehlsfeld einzugeben.
- Klicken Sie auf Vorschau, um das Ergebnis der Abfrage anzuzeigen.
In diesem Szenario wird der Befehl, der in der Vorschau angezeigt wird, länger als 30 Sekunden ausgeführt und schlägt im Designer fehl. Außerdem erhalten Sie eine Fehlermeldung wie "Abfragetimeout abgelaufen".
Ursache
Das Problem tritt auf, weil der CommandTimeout-Schwellenwert für das Vorschaufeature im SSIS-Designer als 30 Sekunden hartcodiert ist.
Lösung
Das Problem wurde zuerst im folgenden kumulativen Update von SQL Server behoben.
Kumulatives Update 3 für SQL Server 2014 /en-us/help/2984923
Kumulatives Update 1 für SQL Server 2012 SP2 /en-us/help/2976982
Kumulatives Update 10 für SQL Server 2012 SP1 /en-us/help/2954099
Informationen zu kumulativen Updates für SQL Server
Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und alle Sicherheitsfixes, die im vorherigen kumulativen Update enthalten waren. Sehen Sie sich die neuesten kumulativen Updates für SQL Server an:
- Neuestes kumulatives Update für SQL Server 2014
- Neuestes kumulatives Update für SQL Server 2012 SP2
- Neuestes kumulatives Update für SQL Server 2012 SP1
Hinweise:
Bevor Sie diesen Hotfix anwenden, werden die Timeouteinstellungen in der Datenvorschau für alle SSIS-Komponenten auf 30 Sekunden festgelegt.
Nachdem Sie diesen Hotfix angewendet haben:
Für ADO.NET Quellkomponente und OLE DB-Quellkomponente verfügen sie bereits über die Eigenschaft CommandTimeout. Diese Eigenschaft wird in der Datenvorschau verwendet.
Für alle anderen Komponenten, die über eine Datenvorschaufunktion verfügen, aber nicht über die CommandTimeout-Eigenschaft verfügen:
- Wenn unter dem Systemregistrierungsschlüssel:\HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\SSIS\Preferences der DWORD-Wert DataPreviewTimeout vorhanden ist, verwendet SSIS diesen Wert während der Vorschauphase als Timeout.
- Wenn kein DWORD-Wert DataPreviewTimeout vorhanden ist, verwendet SSIS weiterhin 30 Sekunden.
Status
Microsoft hat bestätigt, dass dies ein Problem bei den Microsoft-Produkten ist, die im Abschnitt „Gilt für“ aufgeführt sind.