Bazı SQL'in performansını iyileştirmeye çalışıyorum, şu anda CTE'ler komut dosyasında birden çok kez kullanılıyor ve başvuruyor. Bunun yerine bir tablo değişkenini kullanarak geliştirmeler alabilir miyim? (Kod fonksiyonlar içerdikçe geçici bir tablo kullanamazsınız).CTE kullanmanın avantajları/dezavantajları nelerdir?
cevap
Gerçekten performans testi gerekecek - hayır Evet/Hayır cevabı yoktur. Yukarıdaki Andy Living'in gönderdiği bağlantıya göre, bir CTE bir sorgu veya alt sorgu için sadece kısa yoldur. Eğer bir tablo değişkeni doldurmak ve daha sonra bundan select/katılmak eğer
aynı işlevde iki kez ya da daha fazla o aradığınız varsa, daha iyi performans elde edebilirsiniz. Ancak, tablo değişkenleri bir yer kapladığı için ve dizinlere/istatistiklere sahip olmadığından (tablo değişkeninde bildirilen herhangi bir birincil anahtar dışında), hangisinin daha hızlı olacağının hiçbir yolu yoktur.
İkisi maliyetleri ve tasarruf var ve en iyi yolu onlar çekmek verilere ve ne onunla ne bağlıdır hangi. Durumunuzda ve çeşitli koşullar altında hız testi yaptıktan sonra - Bazı fonksiyonlar CTE kullanıyordu ve diğerleri tablo değişkenlerini kullanıyordu. SQL Server için
Muhtemelen hayır. CTE'ler özellikle ağaç yapıları için veri sorgulamada iyidir.
- 1. Başlatıcı listesini kullanmanın avantajları nelerdir?
- 2. Inline Javascript kullanmanın avantajları nelerdir?
- 3. Sınıfları VBA'da kullanmanın yararları nelerdir?
- 4. CTE?
- 5. Bayrak enumunu kullanmanın artıları ve eksileri nelerdir?
- 6. Doğrudan Neo4j kullanarak Spring Data neo4j kullanmanın avantajları nelerdir?
- 7. StringIO'nun String'e karşı olarak Stringio kullanmanın avantajları nelerdir?
- 8. Kullanıcılar, Node.js'yi kullanarak ilişkisel veritabanı değişikliklerini kullanmanın bazı yolları nelerdir?
- 9. OpenOffice DB ve Microsoft Access'i kullanmanın başlıca sakıncaları nelerdir?
- 10. DBIx :: Connector'ın mysql_auto_reconnect'i 1'e ayarlamak için kullanmanın avantajları nelerdir?
- 11. MFC CArray'de, farklı varsayılan şablon türlerini kullanmanın nedenleri nelerdir?
- 12. Android 3.0 - LoaderManager örneklerini tam olarak kullanmanın avantajları nelerdir?
- 13. Datepart (yıl, ...) vs. Yıl (...) aşağıdaki üst üste kullanmanın avantajları nelerdir
- 14. Tek bir satırda yayın değişkenlerini kullanmanın artıları ve eksileri nelerdir?
- 15. Veri kaynakları için JNDI'yı kullanmanın ana motivasyonları nelerdir?
- 16. Bir Windows hizmeti oluştururken SRVANY kullanmanın artıları/eksileri nelerdir?
- 17. CTE, ROW_NUMBER ve ROWCOUNT
- 18. Özyinelemeli CTE Sorunu
- 19. CTE Satır Numarası Bölümleme
- 20. Tablodaki kayıtları CTE ile güncelleyin
- 21. CTE ebeveyn-çocuk gösteren kardeşi
- 22. Hadoop'ta NullWritable kullanmanın avantajları
- 23. Verileri daha fazla sınırlamak için başka bir CTE kullanan CTE nasıl oluşturulur?
- 24. SQL CTE Özyineleme: Ana Kayıtları Geri Alma
- 25. Yinelemeli CTE - başlangıç ve bitiş pekiştirmek büyük
- 26. Ebeveyn kayıtlarını bulmak için Özyineleli CTE
- 27. TSQL CTE: Dairesel geçişin nasıl önlenir?
- 28. CTE sonucu bir değişken değişkenine atayamaz mı?
- 29. Asp.net mvc'de asenkron denetleyicileri kullanmanın avantajı nedir?
- 30. Varsayılan üyelik sağlayıcısını veya bunu devralan özel bir kişiyi kullanmanın altında yatan olumlu nedenler nelerdir?
Bkz Craig Freedman ayrıntılı bir açıklama [bağlantı metni] (http://blogs.msdn.com/craigfr/archive/2007/10/18/ctes-common-table-expressions.aspx) –