2007 Gün ışığından yararlanma saati değişiklikleri için SQL Server 2005 ve SQL Server 2000 hazırlıklı olma

Makale çevirileri Makale çevirileri
Makale numarası: 931975 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Giriş

Ağustos 2005'te, enerji ilkesi işlemi U'ya S. Kongre geçirildi. Bu işlemi, başlangıç tarihi hem de gün ışığından yararlanma saati (DST) bitiş tarihini değiştirir. Bu eylemi 2007'de yürürlüğe gittiğinde, DST üç hafta önce başlar ve daha yeni, Geleneksel olarak başladığında ve sona erdirilmiş bir hafta sonlandırılacak. Özellikle, DST Mart'ın saat 2: 00'te, ikinci Pazar günü başlar ve 2: 00'da bulunan ilk Pazar günü Kasım saat sonlandırılacak.

Aşağıdaki tabloda, 2007 gün ışığından yararlanma saati değişiklikleri özetler.
Bu tabloyu kapaBu tabloyu aç
DST önceden başladığında tarihiDST 2007 başlatıldığında tarihiNe zaman DST önceden bitiş tarihiTarih, DST 2007'de sona erdirir
Nisan ayının ilk Pazar günü saatMart'ın ikinci Pazarı saatEkim'in son Pazarı saat Kasım'ın ilk Pazarı saat
1 Nisan 2007 olacaktı11 Mart 2007'in açıklaması28 Ekim 2007 olacaktı4 Kasım 2007'in açıklaması
Bu makalede, 2007 DST değişiklikleri için Microsoft SQL Server 2005 ve Microsoft SQL Server 2000 hazırlıklı olma anlatılır.

Daha fazla bilgi

Gerçekleştirmeniz gereken eylemleri

Otomatik DST düzeltmeleri için yapılandırılmış bir bilgisayarda SQL Server yüklü ve bu bilgisayarın saat dilimi değişiklikleri için DST 2007'de aşağıdaki aşağıdaki eylemleri gerçekleştirmeniz gerekir:
  • Açıklanan Windows güncelleştirmesi, Microsoft Knowledge Base makalesinde 924840 yükleyin. Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
    924840Bir sınama sürümü Windows 2007 genel saat dilimi güncelleştirmesi kullanılabilir
  • SQL Server Bildirim Hizmetleri varsa, 931815 Microsoft Knowledge Base makalesinde açıklanan güncelleştirmeyi yükleyin. Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
    931815SQL Server 2005 Notification Services ve SQL Server 2000 Notification Services 2007 saat dilimi güncelleştirmesi
  • SQL Server, SQL Server düzgün çalıştığından emin olmak belirli güncelleştirmeleri uygulamak zorunda değildir. Ancak, işletim sistemi güncelleştirmelisiniz. Ayrıca, SQL Server ile ürün ve etkileşimli uygulamalar güncelleştirmelisiniz. Bu ürün ve uygulamaları Notification Services, Windows SharePoint Services, Microsoft CRM içerir ve benzeri. Diğer Microsoft ürünleri için uygulamalısınız güncelleştirmeleri tam bir listesi için aşağıdaki Microsoft Web sitesini ziyaret edin:
    http://support.microsoft.com/gp/cp_dst

SQL Server zaman kullanım ve raporlama

SQL Server 2005 ve SQL Server 2000'de, SQL Server veritabanı altyapısı zaman bilgileri oluşturmak için aşağıdaki iki süreölçer biçimleri kullanır:
  • Yüksek çözünürlüklü süreölçeri
  • Düşük çözünürlüklü süreölçeri
Yüksek çözünürlüklü süre ölçeri Süreölçer çözünürlüğünü okuma zaman damgası sayacı (RDTSC) CPU yönerge dayanır. Düşük çözünürlüklü süre ölçeri Süreölçer çözünürlüğünü Microsoft Windows apı'daki GetTickCount işlevini temel alır.

Çeşitli süreölçer tabanlı arka plan görevlerini ve önemli sistem bileşenleri doğru çalışması için bu süreölçer yararlanır. Bu süreölçer, belirli bir zamandan göreli ölçüler olarak çalışmak için iç bileşendir ve iç aktiviteleri olarak DST değişiklikleri 2007'de etkilenmeyecektir.

Örneğin, aşağıdaki süreölçer tabanlı aktiviteleri veya süreölçer tabanlı bileşenler görevleri gerçekleştirin:
  • Yavaş yazar ve kilit izleyicisi Çizelgeleyici monitör gibi sistem bileşenleri
  • Hayalet temizleme ve Otomatik küçülme gibi arka plan görevleri
  • Zamanlı out tabanlı kaynak kilitlerini ve kilitler
  • Zamanlanmış Aktiviteler gibi SQL Server Agent işler ve bakım planları
  • WAITFOR deyimi gibi sistem ifadeleri
SQL Server, harici bileşenler ve uygulamalar için kullanılabilir zaman bilgileri de oluşturur. Bu zaman bilgilerini, Windows işletim sisteminden alınır. Bu nedenle, işletim sisteminin doğru bir zaman değeri döndürür sürece zaman bilgilerini doğru durumundadır.

Örneğin, aşağıdaki dış bileşenleri ve uygulamaları içeren görevleri gerçekleştirin:
  • SQL Server Profiler'ı veya SQL Profiler olay sütunları Ba?lang?ç Saati sütunu, Bitiş saati sütunu ve çeşitli olaylar için <a2>süre</a2> sütun
  • SQL Server Errorlog, olay günlükleri ve sistem tabloları gibi çeşitli günlüklerdeki bildirdi zaman bilgisi
  • Sistem işlevlerinin GetDate işlevi ve GetUtcDate işlevi
Şu senaryoyu inceleyin. SQL Server Profiler'ı veya SQL Profiler kullanarak, bir SQL Server izleme oluşturun. Izleme kayıtları Mart 2007 DST süre önce başlayan bir sorguyu değiştirin ve Mart 2007 DST zaman değişiklikten sonra tamamlanır. Bu senaryoda, zaman bilgileri doğru olduğunu ve DST değişikliklerinden etkilenmez.
Izleme çıkışını örnek aşağıdadır:
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
benzer şekilde, sorguda Kasým 2007 DST saat değişikliği sırasında kaydeden bir izleme çıkışını örnek aşağıdadır:
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

DST ile ilgili bilinen SQL Server 2007'de belirli DST değişiklikleri için olan sorunları

Tarih ve saat işlevleri DateDiff ve DateAdd DST farkında değildir.

Sistem tarafından sağlanan bir tarih ve saat fonksiyonlarının göre saat hesaplamaları gerçekleştirmek için Transact-SQL deyimlerini kullanırken, ifadeleri dikkatle inceleyin gerekir. DST zamanları, uygulama mantığı, sabit kod yazdınız, özellikle DateDiff ve DateAdd sistem işlevlerinin DST farkında değildir.

Örneğin, bir uygulamayı zaman farkını hesaplamak için aşağıdaki ifadeleri çalışır. Hesaplama, eski DST saatini temel alır. Yeni DST Sistem altında 2007'de, DST başlangıç tarihini 2007-03-11 olduğuna dikkat edin. Ancak, eski DST sisteminde 2007-04-01 DST başlangıç tarihi olacaktır.
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
Ifadeleri çalıştırdığınızda, aşağıdaki sonucu alırsınız:
TimeDiffInSecs 
-------------- 
3,630
DateDiff sistem işlevi, DST farkında değildir için ifadeleri 3,630 saniye 30 saniye yerine geri dönün.

Zaman hesaplama gibi senaryolarda düzeltmek için <a0></a0>, GetDate işlevi yerine GetUtcDate işlevini kullanın. GetUtcDate işlevi geçerli UTC saati döndürür. Geçerli yerel saat ile birlikte SQL Server'ın çalıştığı bilgisayarın işletim sisteminde saat dilimi ayarını geçerli UTC zamanını türetilir.

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

DST bitiş tarihi zamanlanmış bir SQL Server Agent işleri üzerindeki etkisi

Şu senaryoyu inceleyin. Geçerli yerel saat yazdıran zamanlanmış bir SQL Server Agent iş var. Iş, 15 dakikada bir çalışır. DST değişikliği Kasým 2007'de ortaya çıktığında, SQL Server Agent, DST değişikliği otomatik olarak izler. SQL Server Agent işletim sisteminde, izleme ayarlar ve sonraki zamanlanan çalışma işin doğru biçimde güncelleştirilir.

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.

Ancak, bir saat Kasým 2007 DST değişikliği oluştuğunda bir dönem için zamanlanmış bir SQL Server Agent işleri çalıştırılamıyor bilinen bir sorun var. Saat, 1: 00'da bulunan 4 Kasım 2007 için geri 2: 00'da değiştirildikten sonra SQL Server Agent işleri sonraki saat atlayın ve saat 2: 00'sonraki başlatmak için DE çalıştırıncaya kadar bekleyin. Bu bilinen bir sorundur. Bu sorun, hatta öncesi 2007 DST kuralları altında oluştu. Bu sorun değişiklikleri 2007 DST için yol açmaz.

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. Bu davranış, çoğaltma aracısının işler, yedekleme işlerini, günlük sevkiyat işler ve diğer zamanlanmış işleri SQL Server'da etkileyebilir.

Özellikler

Makale numarası: 931975 - Last Review: 20 Kasım 2007 Salı - Gözden geçirme: 3.5
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • 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 2005 Server Workgroup
  • 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
Anahtar Kelimeler: 
kbmt kbhowto kbexpertiseadvanced kbsql2005engine kbinfo KB931975 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:931975

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com