DetailPage-MSS-KB

Microsoft Knowledge Base

Identificativo articolo: 931975 - Ultima modifica: martedì 20 novembre 2007 - Revisione: 3.5

 

In questa pagina

INTRODUZIONE

In agosto 2005, il n uniti passato il Energy Policy Act. Questa azione consente di modificare sia la data di inizio e la data finale dell'ora legale (DST). Quando questa azione entra in vigore in 2007, dell'ora legale verrà avviata tre settimane precedenti e terminerà una settimana successiva quando è in genere avviato e terminata. In particolare, dell'ora legale inizierà alle 2: 00 della seconda domenica di marzo e terminerà alle 2: 00 della prima domenica di novembre.

Nella tabella seguente sono riepilogate le modifiche all'ora legale nel 2007.
Riduci questa tabellaEspandi questa tabella
Data in cui DST avviato in precedenzaData di inizio dell'ora legale nel 2007Data in precedenza terminata all'ora legaleData la fine di ora legale nel 2007
Prima domenica di aprileSeconda domenica di marzoUltima domenica di ottobre Prima domenica di novembre
Sarebbe stato 1 aprile 200711 Marzo 2007Sarebbe stato 28 ottobre 20074 Novembre 2007
In questo articolo viene spiegato come preparare di Microsoft SQL Server 2005 e Microsoft SQL Server 2000 per le modifiche all'ora legale nel 2007.

Informazioni

Azioni che è necessario eseguire

Se si dispone di SQL Server installato in un computer configurato per la regolazione dell'ora legale automatica e il fuso orario del computer segue le modifiche all'ora legale nel 2007, è necessario effettuare le seguenti operazioni:
  • Installare l'aggiornamento per Windows è descritto nell'articolo di Microsoft Knowledge Base 924840. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
    924840  (http://support.microsoft.com/kb/924840/ ) Una versione di test dell'aggiornamento fuso orario globale 2007 per Windows è disponibile
  • Se hai installato nel computer SQL Server Notification Services, installare l'aggiornamento descritto nell'articolo di Microsoft Knowledge Base 931815. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
    931815  (http://support.microsoft.com/kb/931815/ ) aggiornamento di fuso orario 2007 per SQL Server 2005 Notification Services e SQL Server 2000 Notification Services
  • Non è necessario installare eventuali aggiornamenti specifici per SQL Server per assicurarsi che SQL Server funzioni correttamente. Tuttavia, è necessario aggiornare il sistema operativo. Inoltre, è necessario aggiornare i prodotti e le applicazioni che interagiscono con SQL Server. Questi prodotti e applicazioni potrebbero includere Notification Services, Windows SharePoint Services, Microsoft CRM e così via. Per un elenco completo di aggiornamenti che è necessario applicare per altri prodotti Microsoft, visitare il seguente sito Web Microsoft:
    http://support.microsoft.com/gp/cp_dst (http://support.microsoft.com/gp/cp_dst)

Utilizzo del tempo di SQL Server e reporting

In SQL Server 2005 e in SQL Server 2000, il motore di database di SQL Server utilizza le seguenti due forme di timer per generare informazioni di tempo:
  • Timer ad alta risoluzione
  • A bassa risoluzione timer
Nel timer ad alta risoluzione, la risoluzione del timer è basata sull'istruzione RDTSC (lettura timestamp contatori) della CPU. Nel timer a bassa risoluzione, la risoluzione del timer è basata sulla funzione GetTickCount nell'API di Microsoft Windows.

Varie attività in background basato su timer e i componenti critici del sistema si basano su questi timer per il corretto funzionamento. Poiché questi timer funzionano come misure relative da un'ora specifica, componenti interni e le attività interne non influiranno le modifiche all'ora legale nel 2007.

Ad esempio, è possibile eseguire attività che richiedono le seguenti attività basato su timer componenti basati su timer:
  • Componenti di sistema quali Lazywriter, blocco monitor e monitor di utilità di pianificazione
  • Attività di background, ad esempio pulitura fantasma e compattazione automatica
  • Basato sulla uscita di volta di risorse quali i blocchi e latch
  • Attività pianificate, ad esempio i processi di Agente SQL Server e piani di manutenzione
  • Istruzioni di sistema, ad esempio l'istruzione WAITFOR
SQL Server genera inoltre informazioni relative all'ora resa disponibile a componenti esterni e applicazioni. Queste informazioni ora viene recuperate dal sistema operativo Windows. Di conseguenza, le informazioni di tempo siano accurate, purché il sistema operativo restituisce il valore di ora corretta.

Ad esempio, è possibile eseguire attività che richiedono i seguenti componenti esterni e le applicazioni:
  • SQL Server Profiler o SQL Profiler colonne di eventi ad esempio la colonna dell'Ora di inizio , la colonna dell'Ora di fine e la colonna durata per vari eventi
  • Informazioni sull'ora riportato in diversi registri quali log degli errori di SQL Server, i registri eventi e le tabelle di sistema
  • Funzioni di sistema, ad esempio la funzione GetDate e la funzione GetUtcDate
Si consideri lo scenario seguente. È possibile creare una traccia di SQL Server utilizzando SQL Server Profiler o SQL Profiler. I record di traccia una query che viene avviato prima dell'ora legale di marzo 2007, modificare e finisce dopo la modifica di ora legale di marzo 2007. In questo scenario, le informazioni di tempo sono precise e non sono interessate da modifiche dell'ora legale.
Seguito è riportato l'output di esempio della traccia:
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
Analogamente, di seguito è l'output di esempio di una traccia che registra una query durante la modifica del tempo di novembre 2007 ora legale:
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

Problemi noti relativi all'ora legale SQL Server non sono specifici le modifiche all'ora legale nel 2007

DateDiff e DateAdd funzioni di data e ora non sono a conoscenza dell'ora legale

Quando si utilizza istruzioni Transact-SQL per eseguire i calcoli temporali basate su data fornito dal sistema e funzioni di tempo, è necessario esaminare attentamente le istruzioni. In particolare, se avere scritto volte all'ora legale nel disco rigido codice la logica dell'applicazione, le funzioni DateDiff e DateAdd non sono a conoscenza dell'ora legale.

Ad esempio, un'applicazione esegue le istruzioni seguenti per calcolare la differenza di tempo. Il calcolo è basato sull'ora legale precedente. Si noti che in un nuovo sistema di ora legale nel 2007, 2007-03-11 è la data iniziale dell'ora legale. Tuttavia, sotto il precedente sistema di ora legale, 2007 / 04 / 01 sarà la data iniziale dell'ora legale.
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
quando si esegue delle istruzioni, viene visualizzato il seguente risultato:
TimeDiffInSecs 
-------------- 
3,630
poiché la funzione DateDiff di sistema non è a conoscenza dell'ora legale, le istruzioni restituiscono 3,630 secondi invece di 30 secondi.

Per correggere il calcolo del tempo in tali scenari, utilizzare la funzione di GetUtcDate anziché la funzione GetDate . La funzione di GetUtcDate restituisce l'ora TUC corrente. L'ora TUC corrente è derivata dall'ora locale corrente insieme con l'impostazione fuso orario nel sistema operativo del computer in cui è in esecuzione SQL Server.

The following are modified statements that work correctly:
/*-------------------------------------------------------
	  GetDate()		  GetUtcDate()
datetime  2007-03-11 1:59:50.000  2007-03-11 09:59:50.000
datetime  2007-03-11 3:00:20.000  2007-03-11 10:00:20.000
-------------------------------------------------------*/
DECLARE @starttime datetime
DECLARE @endtime datetime
SELECT @starttime = GetUtcDate() -- returns '2007-03-11 9:59:50.000'
WAITFOR DELAY '00:00:30'
SELECT @endtime = GetUtcDate()   –- returns '2007-03-11 10:00:20.000'  
SELECT DATEDIFF (s, @starttime, @endtime) AS TimeDiffInSecs
Go
When you run the statements, you receive the correct result as follows:
TimeDiffInSecs 
-------------- 
30

Effetto della data di fine dell'ora legale per i processi Agente SQL Server pianificati

Si consideri lo scenario seguente. È necessario un processo SQL Server Agent pianificata che stampa local time corrente. Il processo viene eseguito ogni 15 minuti. Quando la modifica dell'ora legale si verifica nel novembre 2007, Agente SQL Server registra automaticamente la modifica dell'ora legale. Agente SQL Server si basa la registrazione sul sistema operativo e della prossima esecuzione pianificata del processo viene aggiornata correttamente.

The following is the sample output of the job:
Job 'Daylight Savings Job 1' : Step 1, 'step 1' : Began Executing 2007-03-11 01:30:00
CurrentTime    2007-03-11 01:30:00.343

Job 'Daylight Savings Job 1' : Step 1, 'step 1' : Began Executing 2007-03-11 01:45:00
CurrentTime    2007-03-11 01:45:00.343

Job 'Daylight Savings Job 1' : Step 1, 'step 1' : Began Executing 2007-03-11 03:00:00
CurrentTime    2007-03-11 03:00:00.357

Job 'Daylight Savings Job 1' : Step 1, 'step 1' : Began Executing 2007-03-11 03:15:00
CurrentTime    2007-03-11 03:15:00.357
In this example, there is a one-hour gap between the run of the job at 2007-03-11 02:00:00 and the run of the job at 2007-03-11 03:00:00 as expected.

Tuttavia, non vi è un problema noto in cui è pianificati processi Agente SQL Server non possono eseguire per un'ora durante il periodo di quando si verifica la modifica dell'ora legale di novembre 2007. Dopo l'orologio viene modificato dal luogo alle 02: 00 alle 1: 00 4 novembre 2007, i processi di Agente SQL Server potrebbero ignorare l'ora successiva e attendere 2: 00 per avviare la successiva esecuzione. Si tratta di un problema noto. Questo problema si è verificato anche nelle convenzioni di ora legale 2007 di pre. Questo problema non viene generato dalle modifiche a DST 2007.

The following is the sample output of the job:
Job 'Daylight Savings Job 1' : Step 1, 'step 1' : Began Executing 2007-11-04 01:30:00
CurrentTime    2007-11-04 01:30:00.343

Job 'Daylight Savings Job 1' : Step 1, 'step 1' : Began Executing 2007-11-04 01:45:00
CurrentTime    2007-11-04  01:45:00.343

one hour plus 15 minutes gap here */

Job 'Daylight Savings Job 1' : Step 1, 'step 1' : Began Executing 2007-11-04 02:00:00
CurrentTime    2007-11-04 02:00:00.357

Job 'Daylight Savings Job 1' : Step 1, 'step 1' : Began Executing 2007-11-04 02:15:00
CurrentTime    2007-11-04 02:15:00.357
Notice that in the sample output of the job, there is a one-hour-and-15-minute gap between the run of the job at 2007-11-04 01:45:00 and the run of the job at 2007-11-04 02:00:00. Questo comportamento potrebbe interessano i processi di agente di replica, i processi di backup, i processi di distribuzione dei log e altri processi pianificati in SQL Server.

Le informazioni in questo articolo si applicano a:
  • 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 Edition
  • Microsoft SQL Server 2000 Workgroup Edition
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000 Enterprise Edition 64-bit
Chiavi: 
kbmt kbhowto kbexpertiseadvanced kbsql2005engine kbinfo KB931975 KbMtit
Traduzione automatica articoliTraduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell’articolo: 931975  (http://support.microsoft.com/kb/931975/en-us/ )
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.
Condividi
Altre opzioni per il supporto
Forum del supporto di Microsoft Community
Contattaci direttamente
Ricerca di un partner certificato Microsoft
Microsoft Store