SQL0666 de la requête SQL dépassent une certaine limite de temps ou de limite de stockage
Régulièrement, je reçois ce message d'erreur lors d'un appel à une base de données DB2 à l'aide de la chaîne de connexion Odbc. J'ai essayé le réglage de la CommandTimeout de la DbCommand objet de plusieurs valeurs, mais j'ai toujours l'erreur suivante.
SQL0666 de la requête SQL dépassent une certaine limite de temps ou de limite de stockage.
Est-il une astuce pour obtenir ce à arrêter erroring arrière. C'est très étrange parce que la même requête est parfois le travail et parfois le délai d'attente. Toute aide serait appréciée. Merci!
Levin, j'ai laissé tomber la .Net tag et ajout de la SSIS tag afin qu'un public plus large pouvez trouver et utiliser ce Q&A. Cela fonctionne pour les packages SSIS parce que c'est la même erreur, cependant, c'est la fixation est légèrement différente de celle de la fixation wihtin un .Net/C# du projet.
OriginalL'auteur Isaac Levin | 2011-02-24
Vous devez vous connecter pour publier un commentaire.
J'ai mis le DbCommand.CommandTimeout= 0 et cette correction de l'erreur de dépassement de délai
OriginalL'auteur kite
Du cerf-volant réponse est correcte, cependant, je voulais partager mon observation/l'expérience après avoir découvert cette Question et de la Réponse lors de la recherche d'une solution à ce même message d'erreur à partir de l'intérieur d'un Serveur SQL server Intégré de Services (SSIS).
Plus tôt aujourd'hui, un de mes Packages SSIS commencé à recevoir ce message d'erreur sur l'un de ses étapes. Après un peu de recherche, j'ai trouvé que mon colis était échoué sur une
DataReader Source
objet qui se connecte à une base de données iSeries via ODBC. Je ne suis pas sûr si c'est une erreur ODBC, ou d'une erreur au sein de l'iSeries/ODBC DB pilotes, mais le message d'erreur était exactement le même.Pour moi, vraiment bizarre, c'est que j'ai pu parcourir les données dans une table liée dans MS Access qui se connecte via la même connexion ODBC et j'ai également pu exécuter un
MAKE TABLE
opération hors du même ensemble de données au sein d'Accès sans aucun problème. Après avoir recherché le message d'erreur, j'ai trouvé ce Q & A. Cette astuce fonctionne également pour les packages SSIS.Pour résoudre ce dans SSIS vous avez besoin d'ouvrir votre colis dans le Microsoft les OFFRES designer. Ensuite, ouvrez l'associé
Data Flow Task
puis sélectionnez leDataReader Source
objet qui rencontre le délai d'attente.Votre
DataReader Source
objet a une propriété qui est également nomméeCommandTimeout
. Le paramètre0
(plutôt que la valeur par défaut30
) devrait résoudre le problème. Après avoir vérifié que le délai d'attente a été la question, je définissez le délai de60
et ré-exécuté l'étape. La minute de délai fixe le problème.Il est intéressant de noter qu'il peut être tentant de mettre à jour votre
CommandTimeout
valeurs sur l'ensemble de vosDataReader Source
objets à0
. Ce n'est pas recommandé. Au lieu de cela, garder les délais d'attente et l'augmentation de la limite plutôt à un généreux valeur. Double, comme je l'ai fait, ou de donner une encore plus généreux de 5 à 10 minutes valeur de délai d'expiration.Propriétés de délai d'expiration existent pour une raison. Vous pouvez donner à votre application généreuse délais d'attente, mais si l'application n'a pas de délai d'attente, votre application peut se bloquer sur la chance qu'il y est un problème à partir de votre Base de données de moteur qui provoque l'étape à ne jamais terminer l'exécution! C'est peut-être improbable, mais n'est pas impossible.
Être en sécurité et d'ajuster vos délais d'attente de façon appropriée.
OriginalL'auteur RLH