DetailPage-MSS-KB

Base de connaissances

Numéro d'article: 931975 - Dernière mise à jour: mardi 20 novembre 2007 - Version: 3.5

 

Sommaire

INTRODUCTION

Dans août 2005, le Congrès u.s.a. s transmis l'Energy Policy Act. Cette loi change à la fois la date de début et la date de fin de passage à l'heure D'ÉTÉ. Lorsque cet acte passe en vigueur dans 2007, l'heure D'ÉTÉ commencera trois semaines plus tôt et se terminera une semaine postérieure lorsque il généralement démarré et terminée. Plus précisément, l'heure D'ÉTÉ commence à 2 h 00 du matin le deuxième dimanche de mars et se terminera à 02: 00 le premier dimanche de novembre.

Le tableau suivant résume les modifications apportées à l'heure d'été en 2007.
Réduire ce tableauAgrandir ce tableau
Date de début précédemment de l'heure D'ÉTÉDate à laquelle l'heure D'ÉTÉ démarre dans 2007Date fin précédemment de l'heure D'ÉTÉDate lorsque l'heure D'ÉTÉ se termine dans 2007
Premier dimanche d'avrilDeuxième dimanche de marsDernier dimanche d'octobre Premier dimanche de novembre
Aurait été 1er avril 200711 Mars 2007Aurait été 28 octobre 20074 Novembre 2007
Cet article explique comment préparer Microsoft SQL Server 2005 et Microsoft SQL Server 2000 pour que les modifications d'heure D'ÉTÉ en 2007.

Plus d'informations

Actions que vous devez effectuer

Si vous avez SQL Server est installé sur un ordinateur qui est configuré pour ajustements automatiques d'heure D'ÉTÉ et le fuseau horaire de l'ordinateur suit les modifications pour l'heure D'ÉTÉ en 2007, vous devez exécuter les actions suivantes :
  • Installez la mise à jour pour Windows qui est décrite dans 924840 article de la base de connaissances Microsoft. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
    924840  (http://support.microsoft.com/kb/924840/ ) Une version test de la mise à jour de fuseau horaire 2007 pour Windows est disponible
  • Si vous avez installé sur l'ordinateur SQL Server Notification Services, installez la mise à jour décrite dans l'article de base de connaissances Microsoft 931815. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
    931815  (http://support.microsoft.com/kb/931815/ ) mise à jour de fuseau horaire 2007 pour SQL Server 2005 Notification Services et SQL Server 2000 Notification Services
  • Vous ne devez pas appliquer les mises à jour spécifiques pour SQL Server pour vous assurer que SQL Server fonctionne correctement. Toutefois, vous devez mettre à jour le système d'exploitation. En outre, vous devez mettre à jour les produits et les applications qui interagissent avec SQL Server. Ces produits et les applications peuvent inclure des services de notification, Windows SharePoint Services, Microsoft CRM, etc. Pour une liste complète des mises à jour que vous devez appliquer d'autres produits Microsoft, reportez-vous au site de Web Microsoft suivant :
    http://support.microsoft.com/gp/cp_dst (http://support.microsoft.com/gp/cp_dst)

Utilisation de temps de SQL Server et génération d'états

Dans SQL Server 2005 et SQL Server 2000, le moteur de base de données SQL Server utilise les deux formes suivantes de timer pour générer les informations de temps :
  • Timer haute résolution
  • Minuteur de basse résolution
Dans le timer haute résolution, la résolution du chronomètre est basée sur l'instruction de lecture temps-tampon compteur (RDTSC) de l'UC. Dans l'horloge de basse résolution, la résolution du chronomètre est basée sur la fonction GetTickCount de l'API Windows de Microsoft.

Différentes tâches en fonction de minuteur en arrière-plan et les composants système critiques reposent sur ces composants Timer pour leur fonctionnement correct. Parce que ces composants Timer fonctionne comme mesures relatives d'une heure spécifique, composants interne et activités internes ne seront pas affectées par les modifications apportées à l'heure D'ÉTÉ en 2007.

Par exemple, vous effectuer les tâches qui impliquent les activités suivantes en fonction de timer ou composants en fonction de minuteur :
  • Composants de système comme écriture différée, moniteur de verrou et planificateur moniteur
  • Tâches en arrière-plan comme fantôme nettoyage et la réduction automatique
  • Ressources base out temps telles que les verrous et latches
  • Planifiée activités telles que SQL Server Agent tâches et les plans de maintenance
  • Instructions de système telles que l'instruction WAITFOR
SQL Server génère également des informations d'heure sont rendues disponibles pour des composants externes et les applications. Ces informations de temps sont extrait du système d'exploitation Windows. Par conséquent, les informations de temps sont précises tant que le système d'exploitation renvoie la valeur d'heure correcte.

Par exemple, vous effectuer les tâches qui impliquent les composants externes suivants et les applications :
  • Générateur de profils SQL Server ou du Générateur de profils colonnes de événement telles que la colonne Heure de début , l'heure de fin et la colonne Durée de divers événements
  • Informations d'heure qui sont rapportées dans divers journaux comme le SQL Server Errorlog, les journaux d'événements et tables système
  • Fonctions système telles que la fonction GetDate et la fonction GetUtcDate
Envisagez le scénario suivant. Vous créez une trace SQL Server à l'aide SQL Server Profiler ou du Générateur de profils SQL. Les enregistrements de suivi une requête qui commence avant l'heure D'ÉTÉ mars 2007 changer et se termine après le changement d'heure mars 2007 l'heure D'ÉTÉ. Dans ce scénario, les informations de temps sont précises et ne sont pas affectées par les modifications d'heure D'ÉTÉ.
Voici la sortie d'exemple de la trace :
EventSequence  EventClass         TextData              StartTime                EndTime                  Duration
156            Sql:StmtStarting   Select * From Table1  2007-03-11 01:59:57.187
157            Sql:StmtCompleted  Select * From Table1  2007-03-11 01:59:57.187  2007-03-11 03:00:07.187  9987
même, voici la sortie d'exemple d'une trace qui enregistre une requête pendant le changement de temps novembre 2007 l'heure D'ÉTÉ:
EventSequence  EventClass         TextData              StartTime                EndTime                  Duration
178            Sql:StmtStarting   Select * From Table1  2007-11-04 01:59:54.967
179            Sql:StmtCompleted  Select * From Table1  2007-11-04 01:59:54.967  2007-11-04 01:00:05.030  10055

Problèmes connus liés heure D'ÉTÉ SQL Server qui ne sont pas spécifiques aux modifications apportées à l'heure D'ÉTÉ dans 2007

DateDiff et AjDate fonctions date et l'heure ne sont pas l'heure D'ÉTÉ connaissance

Lorsque vous utilisez des instructions Transact-SQL pour effectuer des calculs horaires basés sur les fonctions de date fourni par le système et d'heure, vous devez étudier attentivement les instructions. En particulier, si vous avez écrit fois l'heure D'ÉTÉ dans du code dur dans la logique d'application, les DateDiff DateAdd système fonctions et ne sont pas l'heure D'ÉTÉ connaissance.

Par exemple, une application s'exécute les instructions suivantes pour calculer la différence d'heure. Le calcul repose sur l'heure D'ÉTÉ ancien. Notez que sous le nouveau système de l'heure D'ÉTÉ en 2007, 2007-03 est la date de début de l'heure D'ÉTÉ. Cependant, sous l'ancien système d'heure D'ÉTÉ 2007-04-01 serait la date de début de l'heure D'ÉTÉ.
DECLARE @starttime datetime
DECLARE @endtime datetime
SELECT @starttime = GetDate() -- returns '2007-03-11 1:59:50.000'
WAITFOR DELAY '00:00:30'
SELECT @endtime = GetDate()   –- returns '2007-03-11 3:00:20.000' 

If @starttime < '2007-04-01 3:00:00.000' And 
   @endtime > '2007-04-01 1:59:59.000'
	SELECT (cast((DATEDIFF(s, @starttime, @endtime)) as int) - 3600) AS TimeDiffInSecs
Else
	SELECT cast((DATEDIFF(s, @starttime, @endtime)) as int) AS TimeDiffInSecs

Go
Lorsque vous exécutez les instructions, vous recevez le résultat suivant :
TimeDiffInSecs 
-------------- 
3,630
car la fonction système DateDiff n'est pas l'heure D'ÉTÉ oubliez pas, les instructions renvoient 3,630 secondes au lieu de 30 secondes.

Pour corriger le calcul de temps dans ces scénarios, utilisez la fonction GetUtcDate au lieu de la fonction GetDate . La fonction GetUtcDate renvoie l'heure UTC. L'heure UTC est dérivé de l'heure locale actuelle et avec le paramètre de fuseau horaire dans le système d'exploitation de l'ordinateur qui exécute SQL Server.

Effet de la date de fin de l'heure D'ÉTÉ sur les tâches planifiées Agent SQL Server

Envisagez le scénario suivant. Vous avez un travail SQL Server Agent prévu qui imprime local time en cours. Le travail s'exécute toutes les 15 minutes. Lorsque la modification de l'heure D'ÉTÉ se produit dans novembre 2007, SQL Server Agent suit automatiquement le changement d'heure D'ÉTÉ. SQL Server Agent base son suivi sur le système d'exploitation et met à jour correctement la prochaine exécution planifiée du travail.



Toutefois, il existe un problème connu dans lequel les tâches de SQL Server Agent planifiées ne peut pas exécutées pour une heure pendant la période lorsque le changement de novembre 2007 l'heure D'ÉTÉ se produit. Après modification de l'horloge du 14: 00 à 1: 00 4 novembre, 2007, SQL Server Agent travaux serait ignorer l'heure suivante et attendez 14: 00 pour démarrer la prochaine exécution. Il s'agit d'un problème connu. Ce problème s'est produite même dans les conventions de l'heure D'ÉTÉ pré-2007. Ce problème n'entraîne pas des modifications à l'heure D'ÉTÉ 2007.

Ce problème peut affecter les tâches d'agent de réplication, les travaux de sauvegarde, journal livraison tâches et autres tâches planifiées dans SQL Server.

Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2000 Standard
  • Microsoft SQL Server 2000 Workgroup Edition
  • Microsoft SQL Server 2000 Édition Développeur
  • Microsoft SQL Server 2000 Édition Entreprise
  • Microsoft SQL Server 2000 Édition Personelle
  • Microsoft SQL Server 2000 Enterprise Edition 64-bit
Mots-clés : 
kbmt kbhowto kbexpertiseadvanced kbsql2005engine kbinfo KB931975 KbMtfr
Traduction automatiqueTraduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 931975  (http://support.microsoft.com/kb/931975/en-us/ )
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Partager
Options de support supplémentaire
Forums du support Microsoft Community
Nous contacter directement
Trouver un partenaire Microsoft Certified Partner
Microsoft Store