Korumalı Alan Ortamında SOQL Sorgu Performansı
1. Veri Yakınlığı: Korumalı alan ortamları, daha verimli sorgu yürütülmesine olanak tanıyan bitişik verilere sahiptir. Bunun nedeni, verilerin üretim ortamından kopyalanması, kayıtların bitişik bir şekilde saklanmasını sağlayarak veritabanının kayıtları verimli bir şekilde getirmesini kolaylaştırmasıdır[2].2. Önbellek ve Dizine Ekleme: Korumalı alan ortamları, üretim ortamlarına kıyasla daha küçük bir önbelleğe ve dizin boyutuna sahiptir. Bu, veritabanının büyük bir önbellek veya dizini taramak zorunda kalmadan gerekli verilere hızlı bir şekilde erişebileceği ve bunun sonucunda daha hızlı sorgu yürütülmesi anlamına gelir[2].
3. Donanım Yapılandırması: Korumalı alan ortamları, üretim ortamlarına kıyasla genellikle daha az güçlü donanımlarla yapılandırılır. Ancak bu aynı zamanda veritabanının daha az yüklü olması ve sorgulara daha hızlı yanıt verebilmesi nedeniyle sorguların daha hızlı yürütülmesine de katkıda bulunabilir[2].
4. Veri Parçalanması: Üretim ortamlarında genellikle parçalanmış veriler bulunur ve bu da sorgu yürütülmesinin yavaşlamasına neden olabilir. Öte yandan korumalı alan ortamları, karmaşık birleştirme ihtiyacını azaltan ve sorgu performansını artıran bitişik verilere sahiptir[2].
5. Sorgu Optimizasyonu: Korumalı alan ortamları sorgu performansı için optimize edilmiştir. Buna, sorgu yürütme hızını artırmak için tasarlanmış dizinlerin ve önbelleğe almanın kullanımı da dahildir[2].
SOQL Sorgularını Optimize Etmeye Yönelik En İyi Uygulamalar
1. Dizine Alınmış Alanları Kullan: Sorgu performansını artırmak için SOQL sorgularının WHERE yan tümcesindeki dizinlenmiş alanları kullanın[1].2. NULL'lardan kaçının: Dizinlerin[1] kullanımını engellediğinden sorgularda NULLS kullanmaktan kaçının.
3. Sorgu Filtrelerini Kullanın: Sorgu performansını artırmak için verilerin %10'dan azını vurgulayabilen sorgu filtreleri kullanın[1].
4. Joker Karakterlerden Kaçının: Dizinlerin[1] kullanımını engellediğinden sorgularda `%` gibi joker karakterler kullanmaktan kaçının.
5. Karmaşık Sorguları Kırın: Dizinleri etkili bir şekilde kullanmak için karmaşık sorguları basit tekil sorgulara bölün[1].
6. Zorunlu Alanları Seçin: Getirilen veri miktarını azaltmak ve sorgu performansını artırmak için SELECT ifadesinde yalnızca gerekli alanları seçin[1].
Bu en iyi uygulamaları takip ederek ve korumalı alan ile üretim ortamları arasındaki SOQL sorgu performansındaki farkları anlayarak, sorgularınızı Salesforce'ta daha iyi performans ve verimlilik için optimize edebilirsiniz.
Alıntılar:[1] https://www.apexhours.com/large-data-volumes-ldv-in-salesforce/
[2] https://salesforce.stackexchange.com/questions/42163/ Performance-difference-between-sandbox-and-prodüksiyon-instances
[3] https://cothird.io/salesforce-tutorials/how-to-run-soql-query-in-salesforce
[4] https://bluecanvas.io/blog/optimizations-for-salesforce-orgs-with-lots-of-data-part-2
[5] https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007T4MRBSA3