Bu makalede, Microsoft SQL Server ile birlikte uygulamaları karşılaşabilecekleri bir performans sorununu nasıl: belirli bir sorgu veya sorguların Grup performansını düşürür. Bir performans sorunu sorun giderme, ancak bu sorun belirli bir sorgu veya sorgu, beklenenden daha yavaş gerçekleştiren küçük gruba ayrılır, devam etmek, önce Microsoft Knowledge Base'de aşağıdaki makaleye bakın:
224587
(http://support.microsoft.com/kb/224587/
)
NASıL YAPıLıR: SQL Server'da Uygulama performansı sorunlarını giderme
Bu makalede,, sorunun kapsamını daraltmak için makale 224587 kullandınız ve bir SQL Profiler izlemesi 224587 makalesinde ayrıntılı belirli olaylar ve veri sütunları ile yakalanan varsayımına dayanır.
Veritabanı Sorguları ayarlama yönlü bir çaba olabilir. Aşağıdaki bölümlerde, sorgu performansını araştırma zaman incelemek için ortak öğeleri tartışın.Not
SQL Server 2005 kullanıyorsanız, SQL Server Management Studio'yu yerine SQL Query Analyzer'ı kullanın ve dizin Ayarlama Sihirbazı'nı yerine veritabanı Tuning Advisor kullanın.
Doğru dizinleri varlığını doğrulama
Yavaş bir sorgu yürütme kez karşılaşan gerçekleştirilecek ilk çekler dizin analizini biridir. Tek bir sorguda araştırma, SQL Query Analyzer'da Dizin çözümlemesi gerçekleştir
seçeneğini kullanabilirsiniz; bu, büyük bir iş yükünü SQL Profiler izlemesi varsa dizin Ayarlama Sihirbazı'nı kullanabilirsiniz. Her iki yöntem de, SQL Server sorgu en iyi duruma getiricisi hangi dizinleri için belirtilen sorgu yararlı olacaktır belirlemek için kullanın. Bu, doğru dizin veritabanınızda kayıtlı olup olmadığını belirlemek için çok etkili bir yöntemdir.
Dizin Ayarlama Sihirbazı'nı kullanma hakkında daha fazla bilgi için SQL Server 7.0 Çevrimiçi Kitapları'nda "Dizini Ayarlama Sihirbazı" konusuna bakın.
Uygulama SQL Server'ın önceki bir sürümünden yükselttiyseniz, farklı bir dizin en iyi duruma getiricisi ve depolama altyapısı değişiklikler nedeniyle SQL Server 7. 0'daha verimli olabilir. Dizin Ayarlama Sihirbazı stratejisini dizin içinde bir değişiklik performansı yoksa belirlemenize yardımcı olur.
Dizin Ayarlama Sihirbazı'nı SQL Server 2005'te yerine veritabanı Tuning Advisor'ı kullanma hakkında daha fazla bilgi için SQL Server 2005 Books Online'da aşağıdaki konulara bakın:
- Veritabanı arasındaki farkları ayarlama Advisor altyapısını ve Ayarlama Sihirbazı'nı dizin
- Veritabanı Tuning Advisor Eğitmeni
Tüm Query, tablo ve birleşim ipuçlarını Kaldır
Ipuçları, sorgu en iyi duruma getirme geçersiz kılmak ve sorgu en iyi duruma getiricisi Hızlı yürütme planı seçme gelen engel olabilir. En iyi duruma getiricisi değişiklikler nedeniyle, ipuçları, SQL Server'ın önceki sürümlerinde, gelişmiş performans etkisi olabilir veya gerçekte olumsuz olabilir SQL Server 7.0 performansı etkiler. Ayrıca, birleştirme ipuçlarını aşağıdaki nedenlerle bağlı, performansın düşmesine neden olabilir:
- Birleştirme ipuçları ad hoc sorgusu otomatik parameterization için uygun ve sorgu planını önbelleğe alınmasını engeller.
- Bir birleştirme ipucu kullandığınızda, bu birleşimler açıkça bir ipucu da kullanmazsanız sorgudaki tüm tablolar için birleştirme sipariş zorlamak istediğiniz anlamına gelir.
Çözümleme, sorgu tüm ipuçlarını içeriyorsa, bunları kaldırın ve sonra performans'ı re-evaluate.
Yürütme planı inceleyin.
Doğru dizinleri'nın var olduğunu ve hiçbir ipuçları iyileştirici'nın özelliği etkin olan bir planı oluşturmak için sınırlama,'ı onayladıktan sonra sorgu yürütme planı inceleyebilirsiniz. Sorgu için yürütme planı'nı görüntülemek için aşağıdaki yöntemlerden birini kullanabilirsiniz:
- SQL Profiler
MISC:Execution Plan olay SQL Profiler yakalanan, belirli sistem işlem KIMLIĞI (SPID) sorgusu için hemen StmtCompleted olayından önce oluşur.
- SQL Query Analyzer: grafik Showplan
Sorguyu, Sorgu penceresinde seçili sorgu menüsünü tıklatın ve sonra da <a2>Görüntü tahmini Execution Plan</a2>'ı tıklatın.
Not: saklı yordam veya toplu oluşturur ve bir geçici tablolara başvuran bir SET STATISTICS PROFILE deyimini kullanın veya gerekir açıkça yürütme planını görüntülemek için önce geçici tablo oluşturun.
- SHOWPLAN_ALL ve SHOWPLAN_TEXT
Tahmini yürütme planı <a1>metin</a1> sürümüne almak için SET SHOWPLAN_ALL ve SHOWPLAN_TEXT SET seçenekleri kullanabilirsiniz. Daha fazla ayrıntı için SQL Server 7.0 Çevrimiçi Kitapları'nda "SET SHOWPLAN_TEXT (T-SQL)" konuları ve "SET SHOWPLAN_ALL (T-SQL)" konusuna bakın.
Not: saklı yordam veya toplu oluşturur ve bir geçici tablolara başvuran, SET STATISTICS PROFILE ON</a0> seçeneğini kullanın veya gerekir açıkça yürütme planı görüntülemeden önce geçici tablo oluşturun.
- STATISTICS PROFILE
Grafik veya SHOWPLAN kullanarak tahmini yürütme planı, görüntüleme, sorgu gerçekten yürütülür değil. Bu nedenle, bir saklı yordam veya bir toplu iş için geçici bir tablo oluşturursanız, geçici tablolar yok çünkü tahmini yürütme planları görüntüleyemiyor. STATISTICS PROFILE sorguyu ilk yürütür ve sonra da gerçek yürütme planını görüntüler. Daha fazla bilgi için SQL Server 7.0 Çevrimiçi Kitapları'nda "SET STATISTICS PROFILE (T-SQL)" konusuna bakın. SQL Query Analyzer'da çalışırken, bu grafik biçiminde sonuçları</a1> bölmesinde <a2>Execution Plan</a2> sekmesinde görüntülenir.
SQL Server 2005'te tahmini yürütme planını görüntüleme hakkında daha fazla bilgi için SQL Server 2005 Books Online'da "tahmini yürütme planını görüntülemek Yükleme" konusuna bakın.
Showplan çıktıyı inceleyin.
Showplan çıkış pek çok SQL Server kullanan belirli bir sorgu için yürütme planı hakkında bilgi sağlar. Bilgi ve oluşturulan olaylar ayrıntılarını SQL Server 7.0 Çevrimiçi Kitapları'nın "Veritabanı performansını en iyi duruma getirme" Bölüm ayrıntılarıyla ele alınmıştır. En iyi planı kullanıp kullanmadığınızı belirlemekte görüntüleyebileceğiniz yürütme planı temel bazı yönleri şunlardır:
- Doğru dizin kullanımı
Showplan çıkış söz konusu ise, her tablo, sorgu ve veri elde etmek için kullanılan bir erişim yolu görüntüler. Grafik showplan bir tablo, her tabloya ilişkin ayrıntıları görmek için işaretçiyi taşıyın. Dizin kullanımda ise, "Dizin arama" konusuna bakın; dizin kullanımda değilse, "Tablo tara" yığın ya da "Kümelenmiş dizini tara" kümelenmiş bir dizin olan bir tabloda bakın. "Kümelenmiş dizin tarama" Tablo ile kümelenmiş dizin, kümelenmiş dizin doğrudan erişim tek tek satırlara kullanılmakta olmayan taranıyor olduğunu gösterir.
Yararlı bir dizin bulunmaktadır ve bu sorgu için kullanılmadığından belirlerseniz, bir dizin ipucu kullanarak dizin zorlama deneyebilirsiniz. Dizin ipuçları hakkında daha fazla ayrıntı için SQL Server Books Online'da "KIMDEN (T-SQL)" konusuna bakın.
- Doğru birleştirme düzeni
Hangi sırayla katılan bir sorgudaki tabloları birleştirilen showplan çıkış gösterir. Iç içe geçmiş bir döngü birleştirmeler, listelenen üst dış tablo tablodur ve iki tablo daha küçük olmalıdır. Karma birleştirmeler, üst tablo oluşturma giriş haline gelir ve bu da iki tablo daha küçük olmalıdır. Ancak, query processor yapı ters kaydedebilmeniz için siparişi daha az kritik olduğunu unutmayın ve en iyi duruma getiricisi, yanlış bir karar yapılan bulursa, çalıştırma sırasında girdileri yoklama. Satır sayımı showplan çıktıda tahminleri denetleyerek, hangi tablonun daha az satır döndürür belirleyebilirsiniz.
Sorgu bir başka birleştirme siparişinden yararlanabilir karar verirseniz birleştirme siparişiyle bir birleşim ipucu zorlama deneyebilirsiniz. Birleştirme ipuçları hakkında daha fazla ayrıntı için SQL Server 7.0 Çevrimiçi Kitapları'nda "KIMDEN (T-SQL)" konusuna bakın.
Not: FORCEPLAN olarak ayarlanmışsa sorguda tablo diğer için bir birleşim ipucu büyük bir sorguda örtülü olarak kullanarak birleştirme sipariş zorlar.
- Doğru bir birleşim türü
Iç içe geçmiş bir döngü, karma, SQL Server'ı kullanır ve birleştirme birleştirir. Yavaş gerçekleştiren bir sorgu bir birleşim teknik diğerine göre kullanıyorsa, farklı bir birleşim türü zorlama deneyebilirsiniz. Örneğin, sorguda birleştirme karma kullanıyorsa, iç içe geçmiş döngüleri birleştirme LOOP birleştirme ipucu kullanarak zorlayabilir. (T-SQL)"KIMDEN" SQL Server 7.0 Çevrimiçi Kitapları'nda daha fazla bilgi için birleşim ipuçları konusuna bakın.
Not: FORCEPLAN olarak ayarlanmışsa sorguda tablo diğer için bir birleşim ipucu büyük bir sorguda örtülü olarak kullanarak birleştirme türünü zorlar.
- Paralel yürütme
Çok işlemcili bir bilgisayar kullanıyorsanız, paralel bir plan kullanılıp kullanılmadığını araştırabilirsiniz. Parallelism kullanımdaysa, PARALLELISM (toplama akışları) bir olay görürsünüz. Paralel bir planı kullanırken belirli bir sorgu yavaş görüntüleniyorsa, <a1>SEÇENEK</a1> (MAXDOP 1) ipucu kullanarak olmayan paralel bir plan zorlama deneyebilirsiniz. "(T-SQL) SELECT" SQL Server 7.0 Çevrimiçi Kitapları'nda daha fazla bilgi için konusuna bakın.
SQL Server 2005'te Showplan yürütme planı Çıkış'ı kullanma hakkında daha fazla bilgi için SQL Server 2005 Books Online'da aşağıdaki konulara bakın:
DIKKAT
- Nasıl yapılır: yürütme planı XML biçiminde kaydedin...
- XML Showplans
- Showplan güvenlik
: sorgu en iyi duruma getiricisi, genellikle en iyi yürütme planını yalnızca son çare olarak birleştirme ipuçları, sorgu ipuçları ve tablo ipuçlarını kullanan bir sorgu için Microsoft önerir seçer için ve yalnızca bir deneyimli Veritabanı yöneticileri ise.
SQL Server 7.0 Çevrimiçi Kitapları'nda aşağıdaki konular, en iyi duruma getirme sorgular hakkında bilgi sağlar:
- "Verimli veri alma kullanan bir uygulama performansını en iyi duruma getirme"
- "Sorgu ayarlama"
- "Recommendations ayarlama sorgusu"
- "Transact-SQL ipuçları"
Makale numarası: 243589 - Last Review: 15 Aralık 2005 Perşembe - Gözden geçirme: 5.4
Bu makaledeki bilginin uygulandığı durum:
- Microsoft SQL Server 2000 Standard Edition
- Microsoft SQL Server 2000 64-bit Edition
- Microsoft SQL Server 7.0 Standard Edition
- Microsoft SQL Server 2005 Standard Edition
- Microsoft SQL Server 2005 Developer Edition
- Microsoft SQL 2005 Server Enterprise
- Microsoft SQL 2005 Server Workgroup
|kbmt kbhowtomaster KB243589 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:243589
(http://support.microsoft.com/kb/243589/en-us/
)