Microsoft, Microsoft SQL Server 2005 veya Microsoft SQL Server 2008 veya SQL 2008 R2 düzeltmelerini bir indirilebilir dosya olarak dağıtır. Düzeltmeler birikimli olduğundan, her yeni sürüm önceki Microsoft SQL Server 2005 veya Microsoft SQL Server 2008 veya SQL 2008 R2 düzeltmesi sürümü ile birlikte gelen tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir
Belirtiler
Microsoft SQL Server 2005 veya Microsoft SQL Server 2008 veya Microsoft SQL Server veya Microsoft SQL Server 2008 R2 örneğinde aşağıdaki koşullara uyan bir sorgu çalıştırmanızı varsayalım:
-
Sorgu ilişkisel işleç içeriyor. Örneğin, küçüktür (<) işleci.
-
İlişkisel işlecinin işleneninde bir DATEDIFF işlevi vardır.
Bu durumda, SQL Server bu sorguyu çalıştırmak için bir alt sorgu planı seçebilir. Bu nedenle sorgu yavaş çalışabilir.
Neden
Bu sorun, SQL Server iyileştirici, DATEDIFF işlevini kullandığınızda Döndürülecek satır sayısını aştığı için oluşur.
Çözüm
Toplu güncelleştirme bilgileri
SQL Server 2005 Service Pack 3
Bu sorunla ilgili düzeltme ilk olarak SQL Server 2005 Service Pack 3 Toplu Güncelleştirmesi 15 ' te yayımlanmıştır. Bu toplu güncelleştirme paketi hakkında daha fazla bilgi için, Microsoft Bilgi Bankası 'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
2507766 SQL Server 2005 Service Pack 3 toplu güncelleştirme paketi 15Not Derlemeler birikimli olduğundan, her yeni düzeltme sürümü önceki SQL Server 2005 düzeltmesi sürümüyle birlikte gelen tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. Microsoft, bu düzeltmeyi içeren en son düzeltmeyi uygulamanızı öneririz. Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:
960598 SQL Server 2005 Service Pack 3 sonrasında yayınlanan SQL Server 2005 derlemeleri Microsoft SQL Server 2005 düzeltmeleri belirli SQL Server hizmet paketleri için oluşturulur. SQL Server 2005 Service Pack 3 düzeltmesini SQL Server Service Pack 3 kurulumuna 2005 uygulamalısınız. Varsayılan olarak, SQL Server hizmet paketinde sağlanan tüm düzeltme, bir sonraki SQL Server hizmet paketine dahil edilmiştir.
SQL Server 2005 Service Pack 4
Bu sorunla ilgili düzeltme ilk olarak SQL Server 2005 Service Pack 4 için toplu güncelleştirme 2 ' de yayımlanmıştır. Bu toplu güncelleştirme paketi hakkında daha fazla bilgi için, Microsoft Bilgi Bankası 'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
2489409 SQL Server 2005 Service Pack 4 için toplu güncelleştirme paketi 2Not Derlemeler birikimli olduğundan, her yeni düzeltme sürümü önceki SQL Server 2005 düzeltmesi sürümüyle birlikte gelen tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. Microsoft, bu düzeltmeyi içeren en son düzeltmeyi uygulamanızı öneririz. Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:
2485757 SQL Server 2005 Service Pack 4 sonrasında yayınlanan SQL Server 2005 derlemeleri Microsoft SQL Server 2005 düzeltmeleri belirli SQL Server hizmet paketleri için oluşturulur. SQL Server 2005 Service Pack 4 düzeltmesini SQL Server Service Pack 4 kurulumuna 2005 uygulamalısınız. Varsayılan olarak, SQL Server hizmet paketinde sağlanan tüm düzeltme, bir sonraki SQL Server hizmet paketine dahil edilmiştir.
SQL Server 2008 Service Pack 1
Bu sorunla ilgili düzeltme ilk olarak SQL Server 2008 Service Pack 1 için toplu güncelleştirme 13 ' te yayımlanmıştır. Bu toplu güncelleştirme paketi hakkında daha fazla bilgi için, Microsoft Bilgi Bankası 'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
2497673 SQL Server 2008 Service Pack 1 için toplu güncelleştirme paketi 13Not Derlemeler birikimli olduğundan, her yeni düzeltme sürümü önceki SQL Server 2008 düzeltmesi sürümüyle birlikte gelen tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. Microsoft, bu düzeltmeyi içeren en son düzeltmeyi uygulamanızı öneririz. Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:
970365 SQL Server 2008 Service Pack 1 ' den sonra yayınlanan SQL Server 2008 derlemeleri Microsoft SQL Server 2008 düzeltmeleri belirli SQL Server hizmet paketleri için oluşturulur. SQL Server 2008 Service Pack 1 düzeltmesini SQL Server Service Pack 1 kurulumuna 2008 uygulamalısınız. Varsayılan olarak, SQL Server hizmet paketinde sağlanan tüm düzeltme, bir sonraki SQL Server hizmet paketine dahil edilmiştir.
SQL Server 2008 Service Pack 2
Bu sorunla ilgili düzeltme ilk olarak SQL Server 2008 Service Pack 2 için toplu güncelleştirme 3 ' te yayımlanmıştır. Bu toplu güncelleştirme paketi hakkında daha fazla bilgi için, Microsoft Bilgi Bankası 'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
2498535 SQL Server 2008 Service Pack 2 için toplu güncelleştirme paketi 3Not Derlemeler birikimli olduğundan, her yeni düzeltme sürümü önceki SQL Server 2008 düzeltmesi sürümüyle birlikte gelen tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. Microsoft, bu düzeltmeyi içeren en son düzeltmeyi uygulamanızı öneririz. Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:
2402659 SQL Server 2008 Service Pack 2 ' den sonra yayınlanan SQL Server 2008 derlemeleri Microsoft SQL Server 2008 düzeltmeleri belirli SQL Server hizmet paketleri için oluşturulur. SQL Server 2008 Service Pack 2 düzeltmesini SQL Server Service Pack 2 kurulumuna 2008 uygulamalısınız. Varsayılan olarak, SQL Server hizmet paketinde sağlanan tüm düzeltme, bir sonraki SQL Server hizmet paketine dahil edilmiştir.
SQL Server 2008 R2 Service Pack 1
Bu sorunla ilgili düzeltme ilk olarak SQL Server 2008 R2 Service Pack 1 için toplu güncelleştirme 1 ' de yayımlanmıştır. Bu toplu güncelleştirme paketini edinme hakkında daha fazla bilgi için, Microsoft Bilgi Bankası 'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
2544793 SQL Server 2008 R2 Service Pack 1 için toplu güncelleştirme paketi 1Not Derlemeler birikimli olduğundan, her yeni düzeltme sürümü önceki SQL Server 2008 R2 düzeltmesi sürümüyle birlikte gelen tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. Bu düzeltmeyi içeren en son düzeltme sürümünü uygulamayı düşünebilirsiniz. Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:
2567616 SQL Server 2008 R2 Service Pack 1 ' den sonra yayınlanan SQL Server 2008 R2 derlemeleri
SQL Server 2008 R2
Bu sorunla ilgili düzeltme ilk olarak toplu güncelleştirme 7 ' de yayımlanmıştır. SQL Server 2008 R2 için bu toplu güncelleştirme paketini edinme hakkında daha fazla bilgi için, Microsoft Bilgi Bankası 'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
2507770 SQL Server 2008 R2 için toplu güncelleştirme paketi 7 Not Derlemeler birikimli olduğundan, her yeni düzeltme sürümü önceki SQL Server 2008 R2 düzeltmesi sürümüyle birlikte gelen tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. Bu düzeltmeyi içeren en son düzeltme sürümünü uygulamayı düşünebilirsiniz. Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:
981356 SQL Server 2008 R2 sonrasında yayımlanan SQL Server 2008 R2 derlemeleri
Durum
Microsoft bu sorunun "Uygulandığı öğe" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.
Geçici Çözüm
Bu soruna geçici bir çözüm için, sorgu planının doðrulama 'ta DATEDIFF işlevini kullanabilmesi için sorguyu yeniden yazın. Örneğin, aşağıdakiler yavaş çalışabilir:create procedure proc_test @date datetimeasselect COUNT (*) from t where c1 <DATEADD(mm, DATEDIFF(mm,0,dateadd(month, -6,@date)), 0) Bununla birlikte, sorunu çözmek için sorguyu aşağıdaki gibi yeniden yazabilirsiniz:create procedure proc_test2 @date datetimeasdeclare @datestr nvarchar(50), @sqlstr nvarchar(1024)set @datestr = CAST (DATEADD(mm, DATEDIFF(mm,0,dateadd(month, -6,@date)), 0) as nvarchar(50))set @sqlstr ='select COUNT (*) from t where c1 < ''' + @datestr + ''''exec (@sqlstr)
Başvurular
SQL Server artımlı hizmet modeli hakkında daha fazla bilgi için, Microsoft Bilgi Bankası 'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
935897 SQL Server ekibinde, bildirilen sorunlara yönelik düzeltmeleri sunmak amacıyla artımlı hizmet modeli kullanılabilirSQL Server güncelleştirmelerinin adlandırma şeması hakkında daha fazla bilgi için, Microsoft Bilgi Bankası 'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
822499 Microsoft SQL Server yazılım güncelleştirme paketlerinin yeni adlandırma şemasıYazılım güncelleştirme terminolojisi hakkında daha fazla bilgi için, Microsoft Bilgi Bankası 'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
824684 Microsoft yazılım güncelleştirmelerini açıklamak için kullanılan standart terminolojinin açıklaması