Você está offline; aguardando reconexão

Como preparar o SQL Server 2005 e o SQL Server 2000 para que as alterações para o horário de verão de 2007

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 931975
INTRODUÇÃO
Em agosto de 2005, o Congresso u. S. passado o Energy Policy Act. Esse ato altera a data de início e a data final do horário de verão (DST). Quando esse ato entra em vigor em 2007, DST começarão três semanas anteriormente e terminará uma semana posterior quando ele tradicionalmente iniciado e finalizada. Especificamente, DST começará às 2: 00 no segundo domingo de março e terminará às 2: 00 no primeiro domingo de novembro.

A tabela a seguir resume as alterações para o horário de verão em 2007.
Data quando o DST anteriormente iniciadoData quando o DST é iniciado em 2007Data quando o DST anteriormente concluídoData quando o DST termina em 2007
Primeiro domingo de abrilSegundo domingo de marçoÚltimo domingo de outubro Primeiro domingo de novembro
Teria sido 1 º de abril de 200711 De março de 2007Teria sido 28 de outubro de 20074 De novembro de 2007
Este artigo descreve como preparar o Microsoft SQL Server 2005 e Microsoft SQL Server 2000 para que as alterações à hora de verão em 2007.
Mais Informações

Ações que você deve executar

Se você tiver o SQL Server instalado em um computador que está configurado para ajustes automáticos do DST e o fuso horário do computador após as alterações à hora de verão no 2007, será necessário executar as seguintes ações:
  • Instale a atualização do Windows que é descrita no artigo da Base de dados de Conhecimento da Microsoft 924840. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
    924840Uma versão de teste da atualização de fuso horário globais 2007 para o Windows está disponível
  • Se você tiver o SQL Server Notification Services instalado no computador, instale a atualização descrita 931815 de artigo da Base de dados de Conhecimento da Microsoft. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
    931815atualização de fuso horário de 2007 para o SQL Server 2005 Notification Services e SQL Server 2000 Notification Services
  • Não é necessário aplicar quaisquer atualizações específicas para o SQL Server certificar-se que SQL Server funciona corretamente. No entanto, você deve atualizar o sistema operacional. Além disso, você deve atualizar os produtos e aplicativos que interagem com o SQL Server. Esses produtos e aplicativos podem incluir Notification Services, Windows SharePoint Services, Microsoft CRM, etc. Para obter uma lista completa de atualizações que você deve aplicar para outros produtos Microsoft, visite o seguinte site:

Utilização de tempo do SQL Server e relatórios

No SQL Server 2005 e no SQL Server 2000, o mecanismo de banco de dados do SQL Server usa as seguintes duas formas de timer para gerar informações tempo:
  • Timer de alta resolução
  • Timer de baixa resolução
No timer de alta resolução, a resolução de timer é baseada em instrução a delta entre ler carimbo de hora contador (RDTSC) da CPU. No timer de baixa resolução, a resolução de timer é baseada na função ObterContagemMarcaEscala na API do Microsoft Windows.

Várias tarefas baseada no cronômetro em segundo plano e componentes críticos do sistema dependem desses temporizadores para seu funcionamento correto. Como desses temporizadores funcionam como medidas relativas de uma data específica, componentes internos e atividades internas não serão afetadas pelas alterações à hora de verão em 2007.

Por exemplo, você pode executar tarefas que envolvem o seguintes atividades baseadas no timer ou componentes baseados no timer:
  • Componentes de sistema, como gravador lento, monitor de bloqueio e Agendador monitor
  • Tarefas de plano de fundo, como limpeza de fantasma e redução automática
  • Recursos baseados em saída de tempo, como bloqueios e registradores de divisão
  • Atividades agendadas como trabalhos do SQL Server Agent e planos de manutenção
  • Instruções de sistema, como a instrução WAITFOR
O SQL Server também gera informações de tempo que são disponibilizadas para aplicativos e componentes externos. Essas informações de tempo são recuperadas do sistema operacional Windows. Portanto, as informações de tempo são precisas, desde que o sistema operacional retorna o valor tempo correto.

Por exemplo, você pode executar tarefas que envolvem os seguintes componentes externos e aplicativos:
  • SQL Server Profiler ou SQL Profiler colunas de eventos, como a coluna de Hora de início , a coluna de Hora de término e a coluna duração para vários eventos
  • Informações de tempo que são relatadas em vários logs, como o Errorlog do SQL Server, os logs de eventos e tabelas do sistema
  • Funções de sistema, como a função GetDate e a função GetUtcDate
Considere o seguinte cenário. Você criar um rastreamento do SQL Server usando o SQL Server Profiler ou SQL Profiler. Os registros de rastreamento de uma consulta que inicia antes do tempo março de 2007 DST alterar e termina após a alteração de tempo de março de 2007 DST. Nesse cenário, as informações de tempo são precisas e não são afetadas pelas alterações de horário de verão.
A seguir está a saída de exemplo do rastreamento:
EventSequence  EventClass         TextData              StartTime                EndTime                  Duration156            Sql:StmtStarting   Select * From Table1  2007-03-11 01:59:57.187157            Sql:StmtCompleted  Select * From Table1  2007-03-11 01:59:57.187  2007-03-11 03:00:07.187  9987
da mesma forma, a seguir é a saída de exemplo de um rastreamento registra uma consulta durante a alteração de tempo de novembro de 2007 DST:
EventSequence  EventClass         TextData              StartTime                EndTime                  Duration178            Sql:StmtStarting   Select * From Table1  2007-11-04 01:59:54.967179            Sql:StmtCompleted  Select * From Table1  2007-11-04 01:59:54.967  2007-11-04 01:00:05.030  10055

Problemas conhecidos relacionados ao DST SQL Server que não são específicas para as alterações à hora de verão de 2007

Funções de data e hora DateDiff e DateAdd não são ciente do DST

Quando você usa instruções Transact-SQL para executar cálculos de tempo que são baseados em funções fornecido pelo sistema de data e hora, você deve investigar cuidadosamente as instruções. Especificamente, se você tiver gravado DST vezes no código do disco rígido na lógica do aplicativo, as funções de sistema DateDiff e DateAdd não são DST ciente.

Por exemplo, um aplicativo executa as instruções a seguir para calcular a diferença de tempo. O cálculo é baseado na hora DST antiga. Observe que, em novo sistema de hora de verão em 2007, 2007-03-11 é a data inicial do DST. No entanto, em sistema de DST antigo, 2007-04-01 seria a data inicial do DST.
DECLARE @starttime datetimeDECLARE @endtime datetimeSELECT @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 TimeDiffInSecsElse	SELECT cast((DATEDIFF(s, @starttime, @endtime)) as int) AS TimeDiffInSecsGo
ao executar as instruções, você recebe o seguinte resultado:
TimeDiffInSecs -------------- 3,630
como a função DateDiff do sistema não está ciente do DST, as instruções retornam 3,630 segundos em vez de 30 segundos.

Para corrigir o cálculo de tempo em tais situações, use a função GetUtcDate em vez da função GetDate . A função GetUtcDate retorna a hora UTC atual. A hora UTC atual deriva a hora local atual com a configuração de fuso horário no sistema operacional do computador no qual o SQL Server está sendo executado.

The following are modified statements that work correctly:
/*-------------------------------------------------------	  GetDate()		  GetUtcDate()datetime  2007-03-11 1:59:50.000  2007-03-11 09:59:50.000datetime  2007-03-11 3:00:20.000  2007-03-11 10:00:20.000-------------------------------------------------------*/DECLARE @starttime datetimeDECLARE @endtime datetimeSELECT @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 TimeDiffInSecsGo
When you run the statements, you receive the correct result as follows:
TimeDiffInSecs -------------- 30

Efeito da data de término DST em trabalhos agendados do SQL Server Agent

Considere o seguinte cenário. Você tem um trabalho agendado do SQL Server Agent que imprima hora local atual. O trabalho será executado a cada 15 minutos. Quando a alteração DST ocorre em novembro de 2007, o SQL Server Agent controla automaticamente a alteração DST. SQL Server Agent baseia seu controle no sistema operacional e a próxima execução agendada do trabalho é atualizada corretamente.

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:00CurrentTime    2007-03-11 01:30:00.343Job 'Daylight Savings Job 1' : Step 1, 'step 1' : Began Executing 2007-03-11 01:45:00CurrentTime    2007-03-11 01:45:00.343Job 'Daylight Savings Job 1' : Step 1, 'step 1' : Began Executing 2007-03-11 03:00:00CurrentTime    2007-03-11 03:00:00.357Job 'Daylight Savings Job 1' : Step 1, 'step 1' : Began Executing 2007-03-11 03:15:00CurrentTime    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.

No entanto, há um problema conhecido no qual os trabalhos agendados do SQL Server Agent não é possível executar para uma hora durante o período quando ocorre a alteração de novembro de 2007 DST. Depois que o relógio é alterado de 2: 00 para 1: 00 em 4 de novembro de 2007, trabalhos do SQL Server Agent poderiam ignorar a próxima hora e espere até 2: 00 para iniciar a próxima execução. Esse é um problema conhecido. Esse problema ocorreu mesmo sob as convenções de DST pré-2007. Esse problema não resulta das alterações à hora de verão em 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:00CurrentTime    2007-11-04 01:30:00.343Job 'Daylight Savings Job 1' : Step 1, 'step 1' : Began Executing 2007-11-04 01:45:00CurrentTime    2007-11-04  01:45:00.343one hour plus 15 minutes gap here */Job 'Daylight Savings Job 1' : Step 1, 'step 1' : Began Executing 2007-11-04 02:00:00CurrentTime    2007-11-04 02:00:00.357Job 'Daylight Savings Job 1' : Step 1, 'step 1' : Began Executing 2007-11-04 02:15:00CurrentTime    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. Esse comportamento pode afetar os trabalhos de agente de replicação, os trabalhos de backup, trabalhos de envio de log e outros trabalhos agendados no SQL Server.

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 931975 - Última Revisão: 11/20/2007 17:48:49 - Revisão: 3.5

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

  • kbmt kbhowto kbexpertiseadvanced kbsql2005engine kbinfo KB931975 KbMtpt
Comentários