SOQL (Salesforce Nesne Sorgu Dili) sorguları, Salesforce sanal alanlarının nasıl kurulduğuna ve yönetildiğine dair birkaç teknik ve operasyonel faktör nedeniyle bir üretim ortamında bir üretim ortamında daha hızlı çalışabilir. Bu faktörleri anlamak, veri hacimleri, endeksleme, önbellekleme, kaynak çekişmesi ve üretim ortamlarına özgü sistem optimizasyonlarında farklılıklar gerektirir.
Veri Hacmi ve Karmaşıklığı
Soql sorgularının kum havuzu ortamlarında daha hızlı çalıştığı temel nedenlerinden biri, veri hacmindeki farktır. Sandboxes, özellikle üretim verilerinin bir alt kümesini kopyalayan kısmi veya geliştirici sanal alanlarından daha küçük veri kümelerine sahiptir. Bu azaltılmış veri hacmi, sorgu yürütme sürelerini doğal olarak hızlandırarak sorgularla daha az kaydın taranması, dizine eklenmesi ve döndürülmesi gerektiği anlamına gelir. Üretim verilerini yansıtan tam kum havuzlarında bile, sık sık yenilemeler veya anlık görüntüler, verilerin canlı üretim orgunda olduğu kadar hacimli veya sık erişim olmadığı anlamına gelebilir ve bu da daha düşük genel sistem yükü nedeniyle daha iyi performansa neden olabilir.
Dizin ve Seçicilik
Salesforce'un sorgu optimizer, sorgu yürütmeyi hızlandırmak için büyük ölçüde dizinlere dayanır. Salesforce, tüm tabloyu taramak yerine sonuç setini hızlı bir şekilde daraltabildiğinden, endeksli alanlarda filtreleyen sorgular genellikle çok daha hızlıdır. Sandbox ortamlarında, sorgu optimize edici daha verimli davranabilir, çünkü veri dağıtımı farklı olabilir ve dizinlerin daha seçici olmasına izin verir. Örneğin, bir kum havuzunun belirli dizinli alanlarda üretimden daha az yinelenen veya boş değeri varsa, sorgu optimize edici sorguları daha hızlı yürütmek için dizinleri daha etkili bir şekilde kullanabilir. Ayrıca, sanal alan ortamları, geliştirme ve test sırasında SOQL performansını optimize edebilen üretimi etkilemeden özel dizinleri veya sorgu ayarlarını denemede daha fazla esneklik sağlar.
azaltılmış çekişme ve kaynak izolasyonu
Üretim ortamları çok kiracıdır ve aynı anda çeşitli operasyonlar gerçekleştiren ve kaynak tartışması oluşturan son kullanıcılar tarafından yoğun bir şekilde kullanılmaktadır. Bu çekişme, CPU, bellek ve G/Ç çok sayıda eşzamanlı süreç arasında paylaşıldığı için sorgu yürütmeyi yavaşlatabilir. Buna karşılık, kum havuzları, özellikle geliştirici ve geliştirici Pro Sandboxes, daha az eşzamanlı kullanıcıya ve daha düşük genel sistem yüküne sahip olma eğilimindedir. Eşzamanlı işleme talebindeki bu azalma, sorguların kaynaklara daha kolay erişebileceği, bekleme sürelerini azaltabileceği ve yürütmeyi hızlandırabileceği anlamına gelir.
Önbellek ve Sorgu Planı Kararlılığı
Salesforce, performansı artırmak için sofistike sorgu önbellekleme mekanizmaları kullanır. Sandbox ortamlarında, özellikle tekrarlanan testler veya geliştirme yinelemeleri aynı sorguları yürütürse, bazı sorgu sonuçları ve yürütme planları önbelleğe alınabilir. Bu önbellek etkisi, sonraki çalışmalarda sorgu performansını hızlandırabilir. Ayrıca, sanal alan verileri üretimden daha az sık değiştiğinden, önbelleğe alınan sorgu planları ve sonuçları daha uzun süre geçerli kalır ve sorgu verimliliğini artırır. Üretim ortamları, dinamik ve sürekli veri değişiklikleri ve ağır işlemsel etkinlikleri ile önbelleklemeyi etkili bir şekilde kullanamaz, bu da sorgu planlarının daha sık yeniden derlenmesine ve dolayısıyla daha yavaş sorgu performansına yol açamaz.
Vali sınırları ve yürütme bağlamı
Salesforce, platform istikrarını korumak için işlem başına maksimum SOQL sorguları da dahil olmak üzere vali sınırları uygular. Geliştirme kum havuzlarında, geliştiriciler genellikle bu sınırlara vurmaktan kaçınmak için yürütme bağlamlarını daha dikkatli bir şekilde yapılandırır ve kontrol eder, örneğin sorguları toplama ve gruplardaki verileri işleyerek. Bu dikkatli geliştirme ve test, üretime konuşlandırılmadan önce sorguların optimize edilmesine yardımcı olur. Üretimde, karmaşık iş süreçleri ve entegrasyonlar yanlışlıkla aşırı veya verimsiz sorgulamaya neden olabilir, bu da tekrarlanan veritabanı isabetleri ve vali sınırlarına çarpma nedeniyle daha yavaş performansa yol açabilir. Sandboxes, bu sorguları hata ayıklamak ve optimize etmek için daha güvenli bir alan sağlar ve daha iyi göreceli performans sağlar.
Paylaşım kuralları ve güvenlik ayarlarında farklılıklar
Sandbox ortamları üretime kıyasla basitleştirilmiş veya farklı paylaşım kuralları ve güvenlik konfigürasyonları olabilir. Salesforce, sorgu yürütme sırasında veritabanı düzeyinde paylaşım ve görünürlük kurallarını zorlar. Üretimde karmaşık paylaşım hesaplamaları, özellikle nesne ve kayıt düzeyinde güvenlik ile ilgili olanlara, sorgulara ek yük ekleyebilir. Geliştirme veya test için kullanılan kum havuzları bazen bu kuralları kaldırır veya basitleştirir, yürütme karmaşıklığını azaltır ve böylece SOQL sorgu performansını hızlandırır.
Test ve Optimizasyon Odağı
Sandbox ortamlarında genellikle test ve optimizasyona odaklanır. Geliştiriciler ve yöneticiler, sorgu planı aracı, geliştirici konsolunun performans günlükleri ve hata ayıklama günlükleri gibi Salesforce araçlarını kullanarak SOQL sorgularını aktif olarak profil, analiz eder ve geliştirir. Sonuç olarak, sadece gerekli alanları seçmek, seçici filtreler uygulamak, içindeki sorgularla ilmekten kaçınmak, ilişkileri ve agregaları düşünceli bir şekilde kullanarak ve eşzamansız işlem (toplu tepe gibi) Â gibi, daha hızlı sorgularla sonuçlanan en iyi sorgulara neden olmak gibi, Sandbox geliştirme sırasında öğrenilen en iyi uygulamalar. Üretim ortamları yine de performansı düşüren eski veya optimize edilmemiş sorgular içerebilir.
Diğer katkıda bulunan faktörler
- Veri eğrisi: Üretim verileri genellikle küçük bir kayıt alt kümesinin veri kümesine hakim olduğu eğri dağılımlara sahiptir. Bu eğri, endeksleme stratejilerini yenerek sorgu performansını düşürebilir. Sandboxes daha az çarpık olabilir ve daha verimli sorgular sağlar.
- Vakum ve Geri Dönüşüm Bin Durumu: Geri Dönüşüm Kutusundaki Silinen Kayıtlar performansı etkileyebilir. Üretim kuruluşları genellikle, ilgili nesnelere veya geçmişlere erişen SOQL sorgularını yavaşlatabilen kum havuzlarından daha dolgun bir geri dönüşüm kutusuna sahiptir.
- Çoğaltma gecikmesi ve sorgu istatistikleri: Salesforce'un sorgu optimizasyonu, periyodik olarak yenilenen önceden hesaplanmış istatistiklere dayanır. Sandboxes, özellikle yeni yenilenenler, optimize edicinin daha iyi sorgu planları seçmesine izin veren yeni istatistiklere sahip olabilir.
- Platform geliştirmeleri: Bazen Salesforce, erken testler için ilk olarak sanal alanlarda yeni performans iyileştirmeleri ve özellikleri dağıtır. Bu, eski üretim ortamlarına göre sanal alan performansını geçici olarak artırabilir.
Özetle, SOQL sorguları, öncelikle daha küçük ve daha az karmaşık veri kümeleri, daha iyi dizin seçiciliği, azaltılmış sistem tartışması, etkili önbellekleme, geliştirme sırasında odaklanmış sorgu optimizasyonu ve daha basit güvenlik ve paylaşım konfigürasyonları nedeniyle daha hızlı çalışır. Bu kombine faktörler, Salesforce'un sorgu optimize edicisinin sorguları daha verimli bir şekilde yürütebileceği ve kaynakların sorguları işlemek için daha kolay kullanabileceği koşullar yaratır. Bu ortam, üretim kuruluşlarının yüksek yüklü ve karmaşık doğasında ulaşılamaz daha iyi performansı teşvik eder. Bu nedenle kum havuzları, performans taleplerinin ve veri karmaşıklıklarının çok daha yüksek olduğu sorguları ve uygulamaları üretime yerleştirmeden önce hem bir geliştirme/test oyun alanı hem de performans ayarlaması için bir yer olarak hizmet eder. Tüm bu bilgiler Salesforce Performance En İyi Uygulamalarından, Geliştirici Deneyimlerinden ve Salesforce'un Mimari Özelliklerinden alınmıştır.