Düzeltme: bir uygulama basit parameterization kullanan bir SQL Server 2005 veritabanında çok sayıda sorgu gönderdiğinde sistem performansı yavaş olabilir

Makale çevirileri Makale çevirileri
Makale numarası: 920206 - Bu makalenin geçerli olduğu ürünleri görün.
Microsoft, Microsoft SQL Server 2005 düzeltmeleri tek bir yüklenebilir dosya dağıtır. Düzeltmeleri birikimli olduğu için her yeni sürüm, tüm düzeltmeleri içerir ve sürüm önceki SQL Server 2005 ile birlikte verilen tüm güvenlik düzeltmelerini düzeltin.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bu makalede, bu düzeltme sürümü hakkında aşağıdaki açıklanır:
  • Bu düzeltme paketi ile giderilen sorunlar
  • Düzeltme paketini yükleme önkoşulları
  • Düzeltme paketini yükledikten sonra bilgisayarı yeniden başlatmanızın gerekip gerekmediği
  • Düzeltme paketinin başka bir düzeltme paketiyle değiştirilip değiştirilmediği
  • Kayıt defterinde herhangi bir değişiklik yapmanız gerekip gerekmediği
  • Düzeltme paketinin içerdiği dosyalar

Belirtiler

Aşağıdaki senaryoyu düşünün: bir uygulama, bir Microsoft SQL Server 2005 veritabanında çok sayıda sorgu gönderir. Sorgular aynı sorgu metinler var ve aynı parametreleri bildirin. Ancak, sorgu parametresi bildirimi dizesinde duyarlık ve ölçek değerlerini sayısal veri türü için farklı birleşimlerini de vardır. SQL Server 2005 veritabanının basit parameterization kullanır. Bu senaryoda, SQL Server 2005 sistem performansı yavaş olabilir. Ayrıca, yüksek CPU kullanımı karşılaşabilirsiniz.

SQL Server 2005 veritabanının büyük bir yüksek stres senaryosunda, bu sorun daha sık oluşur.

Not Bir SQL Server 2005 veritabanının varsayılan davranışı, basit parameterization kullanmaktır.

Neden

Bu sorun, SQL Server bir sorgu, sorgu metni, Parametreler ve dize parametresi bildirimi bir eşleşme bulmak için çok sayıda sorgu incelemelisiniz nedeniyle oluşur.

Çözüm

Düzeltme bilgileri

Desteklenen bir düzeltme Microsoft'tan edinilebilir. Ancak bu düzeltmenin, yalnızca bu makalede anlatılan sorunu gidermesi amaçlanmıştır. Bu düzeltmeyi yalnızca bu sorunla karşılaşan sistemlere uygulayın. Bu düzeltme ek sınamaya tabi olabilir. Bu nedenle, bu sorun nedeniyle önemli ölçüde etkilenmediyseniz, bu düzeltmeyi içeren bir sonraki yazılım güncelleştirmesini beklemeniz önerilir.

Düzeltme karşıdan yüklenebilir ise bu Bilgi Bankası makalesinin başında "Düzeltme karşıdan yüklenebilir" bölümü bulunur. Bu bölüm görünmüyorsa, düzeltmeyi edinmek üzere Microsoft Müşteri Hizmetleri ve Destek ekibine başvurun.

Not Ek sorunlar oluşursa veya tüm sorun giderme işlemi gerekmiyorsa, ayrı bir hizmet isteği oluşturmanız gerekebilir. Ek destek sorularına ve bu düzeltme için geçerli olmayan sorunlara normal destek ücretleri uygulanır. Microsoft Müşteri Hizmetleri ve Destek telefon numaralarının tam listesi veya ayrı bir hizmet isteği oluşturmak için, aşağıdaki Microsoft Web sitesini ziyaret edin:
http://support.microsoft.com/contactus/?ws=support
Not "Düzeltme karşıdan yüklenebilir" formunda, düzeltmenin kullanılabilir olduğu diller görüntülenir. Kendi dilinizi görmüyorsanız, bunun nedeni bu düzeltme, seçtiğiniz dil için kullanılamaz.

ÖNKOŞULLAR

Bu düzeltmeyi uygulamak için <a0></a0>, SQL Server 2005 Service Pack 1 (SP1) yüklü olmalıdır.
SQL Server 2005 Service Pack 1'i edinme hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
913089En son SQL Server 2005 hizmet paketi nasıl elde edilir

Yeniden başlatma bilgileri

Bu düzeltmeyi uyguladıktan sonra bilgisayarı yeniden başlatmanız gerekmez.

Kayıt defteri Bilgileri

Kayıt defterini değiştirmeniz gerekmez.

Düzeltme Değiştirme Bilgileri

Bu düzeltme başka bir düzeltmenin yerini almaz.

Düzeltme Dosyası Bilgileri

Bu düzeltme, yalnızca bu makalede listelenen sorunları düzeltmek için gerekli olan dosyaları içerir. Bu düzeltme, bir ürünü en son sürüme tam olarak güncelleştirmek için gerekli olan dosyaları içermeyebilir.
Bu düzeltmenin İngilizce sürümü, aşağıdaki tabloda listelenen dosya özniteliklerine (veya daha yeni dosya özniteliklerine) sahiptir. Bu dosyaların tarihleri ve saatleri Koordinatlı Evrensel Saat'e (UTC) göre listelenir. Dosya bilgilerini görüntülediğinizde yerel saate dönüştürülür. UTC ve yerel saat arasındaki farkı bulmak için <a0></a0>, Denetim Masası'ndaki Tarih ve saat öğesinde saat dilimi sekmesini kullanın.
SQL Server 2005 düzeltme, 32-bit
Bu tabloyu kapaBu tabloyu aç
Dosya AdıDosya SürümüDosya BoyutuTARİHSAATPlatform
Microsoft.SQLServer.mgdsqldumper.dll2005.90.2164.075,55214-Haz-200620: 29X86
Microsoft.SQLServer.sqlenum.dll9.0.2164.0908,06414-Haz-200620: 32X86
Msgprox.dll2005.90.2164.0197,92014-Haz-200620: 29X86
Msmdlocal.dll9.0.2164.015,661,85614-Haz-200620: 33X86
Mssqlsystemresource.ldfUygulanamaz524,28814-Haz-200614: 23Uygulanamaz
Mssqlsystemresource.mdfUygulanamaz39,911,42414-Haz-200614: 23Uygulanamaz
Replprov.dll2005.90.2164.0547,61614-Haz-200620: 31X86
Replrec.dll2005.90.2164.0782,11214-Haz-200620: 32X86
Sqlaccess.dll2005.90.2164.0347,93614-Haz-200620: 31X86
Sqlservr.exe2005.90.2164.028,950,87214-Haz-200620: 33X86
SQL Server 2005 düzeltme, 64-bit
Bu tabloyu kapaBu tabloyu aç
Dosya AdıDosya SürümüDosya BoyutuTARİHSAATPlatform
Microsoft.SQLServer.mgdsqldumper.dll2005.90.2164.075,55214-Haz-200620: 29X86
Microsoft.SQLServer.mgdsqldumper.dll2005.90.2164.091,42414-Haz-200621: 10X64
Microsoft.SQLServer.sqlenum.dll9.0.2164.0875,29614-Haz-200621: 12X86
Msgprox.dll2005.90.2164.0259,36014-Haz-200621: 10X64
Msmdlocal.dll9.0.2164.015,661,85614-Haz-200620: 33X86
Mssqlsystemresource.ldfUygulanamaz524,28814-Haz-200614: 23Uygulanamaz
Mssqlsystemresource.mdfUygulanamaz39,911,42414-Haz-200614: 23Uygulanamaz
Replprov.dll2005.90.2164.0745,24814-Haz-200621: 12X64
Replrec.dll2005.90.2164.01,008,41614-Haz-200621: 12X64
Sqlaccess.dll2005.90.2164.0355,10414-Haz-200621: 11X86
Sqlservr.exe2005.90.2164.039,251,23214-Haz-200621: 13X64
SQL Server 2005 düzeltme, 64-bit ıtanium işlemcileri
Bu tabloyu kapaBu tabloyu aç
Dosya AdıDosya SürümüDosya BoyutuTARİHSAATPlatform
Microsoft.SQLServer.mgdsqldumper.dll2005.90.2164.0163,10414-Haz-200620: 29IA-64
Microsoft.SQLServer.mgdsqldumper.dll2005.90.2164.075,55214-Haz-200620: 29X86
Microsoft.SQLServer.sqlenum.dll9.0.2164.0875,29614-Haz-200620: 29X86
Msgprox.dll2005.90.2164.0542,49614-Haz-200620: 28IA-64
Msmdlocal.dll9.0.2164.048,733,98414-Haz-200620: 30IA-64
Mssqlsystemresource.ldfUygulanamaz524,28814-Haz-200614: 23Uygulanamaz
Mssqlsystemresource.mdfUygulanamaz39,911,42414-Haz-200614: 23Uygulanamaz
Replprov.dll2005.90.2164.01,617,18414-Haz-200620: 29IA-64
Replrec.dll2005.90.2164.02,141,47214-Haz-200620: 29IA-64
Sqlaccess.dll2005.90.2164.0349,47214-Haz-200620: 28X86
Sqlservr.exe2005.90.2164.072,208,67214-Haz-200620: 30IA-64

Durum

Microsoft, "Geçerli Olduğu Ürünler" bölümünde listelenen Microsoft ürünlerinde bu sorunun olduğunu onaylamıştır.

Pratik Çözüm

Bu soruna geçici bir çözüm bulmak için <a0></a0>, istemci uygulamasında açık parameterization kullanın. Istemci uygulamasında açık parameterization kullandığınızda, yalnızca tek bir yürütme planı oluşturulur ve yordam önbelleğinde depolanır. Bu geçici çözüm, SQL Server 2005 sistem performansı beklendiği gibi çalışır.

Açık parameterization ve yürütme planı hakkında daha fazla bilgi için yeniden kullanmak için aşağıdaki Microsoft Developer Network (MSDN) Web sitesini ziyaret edin:
http://msdn2.microsoft.com/en-us/library/ms175580.aspx

Daha fazla bilgi

Bir uygulama, bir SQL Server 2005 veritabanında çok sayıda sorgu gönderdiğinde, sorguyu yürütülebilecek önce her sorgu için yürütme planı yordam önbelleğinde bulunması gerekir.

Not Yordam önbelleğinde belirli bir sorgu için yürütme planı yoksa, SQL Server sorgu derlendiğinden, sorgu için yürütme planı yordamı önbelleğe yazar ve sonra sorguyu yürütür.

SQL Server 2005, yordamın önbelleğinden bir önbellekteki yürütme planı için özel bir sorgu aldığında, SQL Server sorgu derlendi türetilmiş karma anahtarını kullanarak ilgili yürütme planı tanımlar. SQL Server 2005'in özgün sürümünü karma anahtarlar yalnızca sorgu metinden türetir ve parametre bildirimi dizesini atlar. SQL Server 2005, SQL Server 2005, yalnızca sorgu metinden karma anahtarları türetir, aynı sorgu metni ve aynı parametreleri aynı karma toplama alanı içinde olan tüm sorgulara karma tuşları geçirir. Bu davranış, her sorgu parametresi bildirimi dizesinde duyarlık ve ölçeği sayısal değerler için farklı bir birleşimi olsa bile oluşur. SQL Server, SQL Server 2005, belirli bir sorgu için <a1>yordam</a1> önbelleğinden bir önbelleğe alınan sorgu yürütme planı almaya çalıştığında, sorgu metni, Parametreler ve dize parametresi bildirimi eşleşen bir sorgu yürütme planı bulmak için tüm sorgu yürütme planlarını eşleşen karma Demet de incelemelisiniz.

Bu düzeltmeyi uyguladıktan sonra sorgu metni ve parametre bildirimi dizesini SQL Server 2005 karma anahtarları türetir. Yeni bir sorgu, başka bir varolan sorgu eşleşen parametre bildirimi dizesinde duyarlık ve ölçeği sayısal değerler için varsa, SQL Server 2005, karma anahtar için yeni bir sorgu içinde yeni bir karma Demet geçirir. SQL Server 2005, yeni sorguyu aynı sorgu metin ve başka bir varolan sorgu aynı parametreleri olsa bile karma anahtarı için yeni bir sorgu içinde yeni bir karma Demet geçirir. Bu nedenle, SQL Server 2005, önbelleğe alınmış yürütme planları yordam önbelleğinden yeni bir sorgu için almaya çalıştığında, eşleşen karma Demet incelemek, SQL Server için yalnızca bir sorgu içeriyor.

Bu düzeltme çözümü senaryosunda, SQL Server 2005, birçok yürütme planları hala vardır. Bu durum parametresi bildirimi dizesinde duyarlık ve ölçeği sayısal değerler için yeni bir birleşimi olan her sorgu için oluşturulan bir ayrı yürütme planı kaynaklanır. Her yürütme planı yürütme planı oluşturmak için SQL Server 2005 sistem kaynakları gerekir. Her yürütme planı yürütme planı yordam önbelleğinde depolamak için SQL Server 2005 sistem kaynakları gerekir. Düzeltme çözümlemesi senaryosu, çok sayıda sistem kaynağı SQL Server 2005 gerektirdiğinden, SQL Server 2005 sistem performansını hala beklenenden daha yavaş olabilir.
Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
824684Microsoft yazılım güncelleştirmelerini açıklamak için kullanılan standart terminolojinin açıklaması

Özellikler

Makale numarası: 920206 - Last Review: 20 Kasım 2007 Salı - Gözden geçirme: 1.8
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Developer Edition
Anahtar Kelimeler: 
kbmt kbautohotfix kbbug kbfix kbtshoot kbhotfixserver kbqfe kbpubtypekc KB920206 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:920206

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