|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Inscription : janvier 2011 Messages : 34 ![]() |
Bonjour, j'aimerais savoir ce qui ne va pas dans mon code :
Code :
Merci d'avance et bonne journée. PS : voici l'aide sur le MSDN http://msdn.microsoft.com/en-us/library/ms187320.aspx |
||
|
|
00
|
|
|
#2 |
|
Membre éprouvé
![]() ![]() Hamid MIRAIngénieur développement logiciels Inscription : septembre 2003 Messages : 177 ![]() |
Ta requête, sur le plan "algorithmique" me parait correcte.
Il faut vérifier que service Agent SQL Server est bien démarré. C’est l'Agent SQL Server qui se charge du traitement des travaux planifiés. Ci-dessous quelques autres pistes. - Vérifies le contenu des Journaux d’erreurs de Agent SQL Server - Vérifies également l’historique des travaux planifiés (sysjobhistory) A+ |
|
|
10
|
|
|
#3 | ||
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 669 ![]() |
Bonjour,
Effectivement regarder l'historique du job, qui vous indiquera quelle est l'erreur qui se produit. Cela dit je ne vois pas pourquoi vous faites appel aux procédures de création des jobs et de leurs étapes, alors qu'il est plus simple pour cette tâche d'utiliser l'interface graphique. Est-ce que vous déployez le job sur plusieurs instances de SQL Server ? D'autre part votre requête contient un prédicat qui n'est pas SARGable : Code :
DELETE FROM Action_OPE WHERE (DATEDIFF(dd, TimeStmp, GETDATE()) > 2558); Vous pouvez également utiliser des années dans DATEDIFF : Code :
DATEDIFF(year, TimeStmp, GETDATE()) > 7). Code :
Avec votre requête, SQL Server est obligé de lire toute la table, ce qui peut prendre beaucoup de temps, surtout dans votre cas puisqu'il s'agit d'une table qui doit contenir de nombreuses lignes. @++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
||
|
10
|
|
|
#4 | |||
|
Invité régulier
![]() Inscription : janvier 2011 Messages : 34 ![]() |
Citation:
J'ai effectué votre requête de lecture et il n'y a rien dans la table "sysjobhistory" elsuket -> Comment savoir si mon champ est indexé ? J'utilise un job car cette solution m'a paru pratique cependant, si vous avez une autre solution je suis tout à fait preneur |
|||
|
|
00
|
|
|
#5 |
|
Membre éprouvé
![]() ![]() Hamid MIRAIngénieur développement logiciels Inscription : septembre 2003 Messages : 177 ![]() |
Pour vérifier et le cas échéant démarrer l'Agent 'Agent SQL, il faut procéder comme suit :
Dans le menu Démarrer, pointez sur Tous les programmes, sur Microsoft SQL Server 2005, sur Outils de configuration, puis cliquez sur Gestionnaire de configuration SQL Server. Dans le Gestionnaire de configuration SQL Server, développez Services SQL Server 2005, puis cliquez sur Agent SQL. Dans le volet de résultats, cliquez avec le bouton droit sur l'instance considérée, puis cliquez sur Démarrer. Une flèche verte sur l'icône à côté de l'Agent SQL Server, indique que l'Agent SQL Server est bien démarrée. A+, |
|
|
10
|
|
|
#6 | |
|
Invité régulier
![]() Inscription : janvier 2011 Messages : 34 ![]() |
Citation:
|
|
|
|
00
|
|
|
#7 |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 669 ![]() |
Effectivement SQL Server Express ne contient pas l'Agent SQL Server.
Ceci rappelle encore une fois l'utilité du respect de la charte de postage : si vous aviez préfixé votre sujet par [SQL 2005 Express] ou précisé cela dans votre premier post, personne n'aurait perdu de temps
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
|
10
|
|
|
#8 | ||
|
Membre éprouvé
![]() ![]() Hamid MIRAIngénieur développement logiciels Inscription : septembre 2003 Messages : 177 ![]() |
Mea culpa,
Comme, je utilise très peu (pour ne pas dire jamais) SQL Server Express Edition, j'avais complétement oublié le fait que l'Agent SQL Server n'existe pas sous SQL Server Express Edition. Merci elsuket pour le rappel Une autre solution très simple à mettre en œuvre, est d'utiliser le Planificateur de tâche de Windows combiné à l'utilitaire, en ligne de commande, de SQL Server : sqlcmd et créer une tâche planifiée Windows. Pour cela, il suffit , dans la zone programme/script de la tâche planifiée Windows, de taper une commande, en une seule ligne, comme illustrée dans l'exemple ci-dessous : Code sql :
puis planifier (périodicité, jour, heure, …), de façon classique, la tâche Windows, et le tour est joué ! PS : Il faut veiller à respecter comme indiqué, la casse des options (-S -d -U -P -Q) c'est important. Certaines options existent en minuscule et en majuscule, mais n'ont pas la même signification ! A+ |
||
|
|
10
|
|
|
#9 |
|
Invité régulier
![]() Inscription : janvier 2011 Messages : 34 ![]() |
hmira : Étant donné que je vais migrer ma base prochainement vers SQL Server 2005 (pas express =P) je pense garder la solution du job mais l'autre solution me sera surement fortement utile
Par contre le paramétrage de mon scheduler est il bon ? Merci beaucoup bonne journée |
|
|
00
|
|
|
#10 |
|
Membre éprouvé
![]() ![]() Hamid MIRAIngénieur développement logiciels Inscription : septembre 2003 Messages : 177 ![]() |
A partir du moment où tu utiliseras, comme l'a déjà suggéré elsuket dans un message ci-dessus, l'interface graphique pour créer la tâche planifiée, tu n'auras point besoin de script (ou code) pour créer la partie planification. Au travers l'interface graphique, tu pourras ainsi aisément tout paramétrer (étape, planification, alerte, notifications, etc.) de la tâche planifiée.
A+ |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com