Uygulama Tasarımlarınızın mümkün olan en verimli şekilde performans göstermesini sağlamak için kullanabileceğiniz on beş ipucu.
- ANSI uyumlu SQL'i veritabanına aktarmak yerine saklı yordamları kullanın.
Bu, ağ trafiğini azaltabilir, çünkü müşteriniz büyük ağır hizmet sorguları metni yerine yalnızca saklı yordam adını sunucuya (belki de bazı parametrelerle) gönderir. Saklı yordamlar, güvenliği artırmak ve altta yatan veri nesnelerini gizlemek için de kullanılabilir. Örneğin, kullanıcılara sınırlı sütun ve veri kümesiyle çalışmak için saklı yordamın yürütülmesine izin verebilirsiniz. - Sorguları zaman uyumsuz olarak çalıştırmak için uygulamayı tasarlayın.
Bu, uygulamanızın performansını artırabilir; çünkü bir sorgunun bir sonraki çalıştırmadan önce beklemesi gerekmeyecektir. - Nesne havuzu için Microsoft Transaction Server (MTS) kullanmayı düşünün.
Bu, uygulamanızın performansını artırabilir çünkü MTS, COM nesnelerinin bir araya toplanmasına izin verir. - Kullanıcıların çoğunda modern güçlü bilgisayarlar varsa, istemci verilerini önbelleğe almak için tasarım uygulamasını düşünün.
Bunu yaparak, SQL Server'ınızın yükünü azaltabilirsiniz, çünkü kullanıcıların verilere erişmesi gerektiğinde, SQL Server kaynaklarını değil, yerel masaüstü kaynaklarını kullanırlar. - Çok katmanlı uygulama modelinden yararlanmak için uygulamayı tasarlamayı düşünün.
Katmanlı uygulama modelini kullanarak, uygulamanın performansını ve ölçeklenebilirliğini artırabilirsiniz. - Sonuç kümelerini SELECT ifadelerindeki WHERE yan tümcesini kullanarak kısıtlamaya çalışın.
Bu, SQL Server'ın istemciye yalnızca belirli satırları, tablodaki tüm satırları geri döndüreceği için iyi performans avantajları sağlayabilir. Bu, ağ trafiğini azaltabilir ve sorgunun genel performansını artırabilir. - Sonuç kümelerini, tablonun tüm sütunlarını değil, yalnızca tablodaki belirli sütunları döndürerek sınırlamayı deneyin.
Bu, SQL Server'ın istemciye, tablonun tüm sütunlarından daha hızlı olan yalnızca belirli sütunlara döneceği için iyi performans avantajları sağlayabilir. Bu, ağ trafiğini azaltabilir ve sorgunun genel performansını artırabilir. - Seçme deyimlerini TOP anahtar kelimesiyle kullanarak sonuç kümelerini kısıtlamaya çalışın.
Bu, uygulamanızın performansını artırabilir; çünkü daha küçük bir sonuç kümesi döndürülür. Bu, sunucu ve istemci arasındaki trafiği de azaltabilir. - Uygulamanızın tablonun tüm satırlarını almak yerine küçük bir satır alt kümesi getirmesine izin vermek için SQL Server imleçlerini kullanın.
SQL Server imleçleri, uygulamanın, sonraki n satırları, önceki n satırları veya sonuç kümesindeki belirli bir satır numarasından başlayan n satırları dahil olmak üzere, sonuç kümesinden herhangi bir satır bloğunu almasına izin verir. SQL Server imleçlerini kullanmak ağ trafiğini azaltabilir çünkü daha küçük bir sonuç kümesi döndürülür. - Yüksek performans gerektiren uygulamalardan verilere erişmek için ADO veya OLE DB kullanın.
Bu, uygulamanızın DAO veya ODBC kullanmaya kıyasla performansını artırabilir. OLE DB, verilere erişmek için düşük düzeyli bir COM API'dir ve ADO, OLE DB kullanan uygulama düzeyinde bir arabirimdir. Microsoft, iş uygulamalarında (Muhasebe, İnsan Kaynakları ve Müşteri Yönetimi) genel amaçlı erişim programları için yüksek performans gerektiren araçlar, yardımcı programlar veya düşük seviye bileşenler geliştirmek için OLE DB kullanmanızı önerir. - SQL Server'a bağlandığınızda, 'SQL Server için Microsoft ODBC Sürücüsü' yerine 'SQL Server için Microsoft OLE DB Sağlayıcısı' kullanın.
Yerel OLE DB sağlayıcısı, ODBC sağlayıcısından daha hızlı olduğundan, mümkün olduğunda OLE DB sağlayıcısını kullanmanız gerekir. - Uygulamanızda kullanılan sorguların süresiz çalışmaması için bir kilitleme zaman aşımı süresi ayarlayın.
SET LOCK_TIMEOUT komutunu, bir uygulamanın engellenen bir kaynakta bekleyeceği maksimum süreyi belirlemesine izin vermek için kullanabilirsiniz. LOCK_TIMEOUT ayarı aşıldığında, bloke ifade otomatik olarak iptal edilir ve 1222 "Kilit isteği zaman aşımı süresi aşıldı" hata mesajı uygulamaya geri gönderilir. Uygulamanızın 1222 hata mesajını tutabilecek bir hata işleyicisi olması gerekir. - OLTP ve OLAP işlemlerini aynı veritabanında kullanmaktan kaçının.
OLTP işlemleri değişen verileri yönetmek için uygun olduğundan ve OLAP işlemleri, verileri değiştirmeyen veri sorguları için en uygun olduğundan, OLTP ve OLAP işlemlerini kendi veritabanlarına devretmeyi deneyin. - ADO Command nesnesinden saklı yordamları çağırırken Yenile yöntemini kullanmaktan kaçının.
Bu, Yenile yöntemini kullanarak fazladan ağ trafiği ürettiği için uygulamanızın performansını artırabilir. Saklı yordam parametrelerini tanımlamak için Yenile yöntemini kullanmak yerine, ADO kodunu kullanarak saklı yordam parametrelerini açıkça oluşturmalısınız. - ADO'nun yöntemlerini kullanarak işlem yapmaktan kaçının.
SQL Server'da saklı bir prosedür içinde işlemler oluşturmaya çalışın. Bunu yaparak, ağ trafiğini azaltabilir ve genel uygulama performansını artırabilirsiniz.