SQL Performans Ayarı
SQL performans ayarı, mümkün olan en hızlı şekilde yürütülmesini sağlamak için SQL sorgularını optimize etme sürecidir. Sorgulanan tablo sayısı, tablolardaki sütunların boyutu ve sayısı, tablolardaki dizinler gibi SQL sorgularının performansını etkileyen birçok faktör vardır.
SQL, birçok veritabanı sisteminin kritik bir bileşenidir ve verileri sorgulamak, güncellemek ve yönetmek için iyi bilinen bir dildir.
Sorguların ölçeklenebilirliği ve hızı konusunda yardımcı olabileceğinden SQL performans ayarı, uzmanlaşması gereken önemli bir konudur.
Bu bölümde ele alacağız farklı yollar SQL ayarlama.
Hepimiz her zaman veri alma sürecinde hızlı bir yanıt isteriz. Bu nedenle, bir uygulamanın en iyi performansıyla sonuçlanan veri işleme sırasında en iyi performansı sağlayan iyi bir veritabanı tasarlamamız gerekiyor.
Bununla birlikte, en iyi performansı tanımlamanın basit bir yolu yoktur, ancak SQL sorgu performansını iyileştirmek için Dizin oluşturma, birleştirmelerin kullanımı ve JOIN kullanmak için bir alt sorguyu yeniden yazma gibi çeşitli kategorilere giren birden çok yol seçebiliriz.
Bir geliştirici olarak, herhangi bir SQL sorgusunun birden çok şekilde yazılabileceğini biliyoruz, ancak daha iyi sorgu performansı elde etmek için en iyi uygulamaları/teknikleri izlemeliyiz. Bazıları aşağıda vurgulanmıştır:
- Verilerin varlığını kontrol etmek için IN yerine EXISTS kullanın.
2. SELECT deyiminde * kaçının. İstediğiniz sütunların adını verin.
3. Uygun Veri Tipini seçin. Örneğin, dizeleri saklamak için metin veri türü yerine varchar kullanın. Büyük verileri (8000 karakterden fazla) saklamanız gerektiğinde metin veri türünü kullanın.
4. Mümkünse nchar ve nvarchar'dan kaçının, çünkü her iki veri türü de char ve varchar olarak yalnızca çift bellek alır.
5. Sabit uzunluklu alanda NULL'dan kaçının. NULL gerekliliği durumunda, NULL için daha az yer kaplayan değişken uzunluklu (varchar) alanı kullanın.
6. Cümleye Sahip Olmaktan Kaçının. Bir toplamanın sonucunu daha fazla filtrelemek istiyorsanız, yan tümceye sahip olmak gerekir.
7. Kümelenmiş ve Kümelenmemiş Dizinler oluşturun.
8. Kümelenmiş dizinde kullanılan alanlar kümelenmemiş dizinde de kullanılabileceğinden kümelenmiş dizini küçük tutun.
9. Çoğu seçici sütun, kümelenmemiş bir dizinin anahtarında en sola yerleştirilmelidir.
10. Kullanılmayan Dizinleri bırakın.
11. Karakterler yerine tamsayı değerleri olan sütunlarda dizinler oluşturmak daha iyidir. Tamsayı değerleri, karakter değerlerinden daha az ek yük kullanır.
12. Alt sorgular yerine birleştirmeleri kullanın.
13. Birleştirmelerle oluşturulan sonuç tablolarının boyutunu sınırlamak için WHERE ifadelerini kullanın.
14. Bir tabloya eklerken TABLOCKX'i ve birleştirirken TABLOCK'u kullanın.
15. Herhangi bir tablodaki verileri sorgularken, WITH (NOLOCK) kullanın.
16. Kilitlenme durumundan kaçınmak için SET NOCOUNT ON'u ve TRY-CATCH'i kullanın.
17. İmleç performansta çok yavaş olduğu için İmleçlerden kaçının.
18. Temp tablosu yerine Table değişkenini kullanın. Temp tablolarının kullanımı, zaman alan bir görev olan TempDb veritabanı ile etkileşimi gerektiriyordu.
19. Mümkünse UNION yerine UNION ALL kullanın.
20. SQL nesneleri adından önce Şema adını kullanın.
21. Sık kullanılan veriler ve daha karmaşık sorgular için Saklı Prosedürü kullanın.
22. İşlem, tablo verilerini işlemeyi kilitlediğinden ve kilitlenmelere neden olabileceğinden, işlemi mümkün olduğunca küçük tutun.
23. Kullanıcı tanımlı saklı yordam adıyla "sp_" önekinden kaçının çünkü SQL sunucusu önce ana veritabanında ve ardından geçerli oturum veritabanında kullanıcı tanımlı yordamı arar.
24. İlişkili Olmayan Skaler Alt Sorgu kullanmaktan kaçının. Bu sorguyu, ana sorgunun bir parçası yerine ayrı bir sorgu olarak kullanın ve çıktıyı, ana sorguda veya toplu işlemin sonraki bölümünde başvurulabilecek bir değişkende saklayın.
25. Çoklu İfadeli Tablo Değerli İşlevlerden (TVF'ler) kaçının. Çok deyimli TVF'ler satır içi TVF'lerden daha maliyetlidir.
Yukarıda gördüğümüz gibi, SQL Server'da, sorgularınızın ve bir bütün olarak veritabanınızın performansını iyileştirmek için atabileceğiniz birkaç adım vardır. ORACLE gibi diğer RDBMS'ler için de geçerli olacak birçok adım vardır.
- Sorgularınızın yürütme planını analiz etmek ve yürütülme biçimleriyle ilgili sorunları belirlemek için EXPLAIN PLAN veya AUTOTRACE kullanın.
- Belirli bir sorgu için optimize edici tarafından hangi dizinin kullanılması gerektiğini belirtmek için INDEX ipucunu kullanın.
- Optimize ediciyi sırasıyla tam tablo taraması veya dizin hızlı tam tarama kullanmaya zorlamak için FULL veya INDEX_FFS gibi ipuçları kullanmayı düşünün.
- Bir sorgu için belirli bir optimizasyon modu belirtmek üzere OPTIMIZER_MODE ipucunu kullanın.
- Sık erişilen verileri önceden hesaplamak ve depolamak için gerçekleştirilmiş görünümleri kullanmayı düşünün; bu, bu verilere erişen sorguların performansını artırabilir.
- Veritabanınız ve nesneleri hakkında analiz yapmak ve istatistik toplamak için DBMS_STATS paketini kullanın; bu, optimize edicinin yürütme planları oluştururken daha bilinçli kararlar vermesine yardımcı olabilir.
- Büyük tabloları daha küçük, daha yönetilebilir parçalara bölmek için bölümlemeyi kullanmayı düşünün; bu, bu tablolara erişen sorguların performansını artırabilir.
- SQL ifadelerinizle ilgili olası performans sorunlarını belirlemek ve düzeltmek için SQL Ayarlama Danışmanı'nı kullanın.
- Bunlar, Oracle SQL sorgularınızın ve veritabanınızın performansını iyileştirmek için kullanabileceğiniz birçok teknikten yalnızca birkaçıdır. Atmanız gereken belirli adımların, özel veritabanınıza ve iş yükünüze bağlı olacağını unutmamanız önemlidir.
- Performans sorunları yaşıyorsanız, bir veritabanı yöneticisine veya diğer uzmanlara danışmak her zaman iyi bir fikirdir.
Tatillerde Google Cloud ile GCP'yi Ücretsiz olarak öğrenmenin birçok yolu
Anlamak _
Bulut Öğrenimi için Linux Komutları
İyi Okumalar…..Mutlu Öğrenmeler!

![Bağlantılı Liste Nedir? [Bölüm 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































