Dinamik olarak oluşturulmuş T SQL sorgularını tablonun sütunlarından birinde depolayan bir tablom var. Benim gereksinimim (benim durumumda, bazı ekleme deyimleri) oluşan sorguyu yürütmek ve I 'tüm satırları çaprazlamak ve sonra bir değişkenden ifadeleri yürütmek için bir süre döngü' kullanmak istemiyorum. Ayrıca Bir imleç kullanmak istemiyorum. Tabloda yaklaşık 5 milyon dinamik olarak oluşturulmuş SQL eklentisi vardır. Daha önce bu şeyi bir süre döngü kullanarak denedim, ancak tamamlanması için günlerimi alıyordum ve ben de düşürdüm.Bir tablonun bir sütununda saklanan dinamik bir SQL deyimi yürütme
cevap
'neyi `lakh aramak zorunda diğer yorumlar bu, yeniden düzenleme düşünün lütfen DML en optimal yaklaşım değildir belirtildiği gibi
:) oldu. Olduğu gibi gruplar halinde dinamik SQL, ör .:
DECLARE @sSQL nvarchar(max)
SET @sSQL = 'BEGIN TRAN; '
SELECT @sSQL = @sSQL + COLUMN_WITH_INSERT_STATEMENT + '; '
FROM TABLE
WHERE [limit number of rows]
SET @sSQL = @sSQL + 'COMMIT TRAN '
EXEC(@sSQL)
tek işlemde içine INSERT tabloların kontrollü sayıda birleştirebilirsiniz Bu şekilde bir arada kullanabilirsiniz. WHERE ifadesi ile eklerin sayısını kontrol edebilirsiniz (örn. 100 INSATT'ı bir seferde yürütmek için WHERE ID BETWEEN 1 and 100
). Bu koşula dönüş yapabilirsiniz (evet döngüsü, ancak bu satırlar tek tek satırlarla değil, örn. 100, 101 - 200, 201 - 300 vb.
Cevabınız için teşekkür ederiz. Bu yöntemi de denedim. Benim için ortaya çıkan asıl sorun, farklı makinelerde test ettiğimde varchar (max) limitindeki tutarsızlıktı. Belki karakter kodlamasıyla ilgili bir şey. – Dibin
Nvarchar (max) limit 2Gb'yi, teknik olarak yeterli olması gerekir. İfadeleri bir seferde nasıl çalıştırmaya çalışıyorsunuz? –
Max'in ötesine geçmek için exec'nizde birleşik olabilirsiniz. exec (@sSQL + @ sSQL1 + @ sSQL2) – SQLMason
- 1. Bir tablonun bir sütununda aşağıdaki XML böyle bir şey var
- 2. SQL Server'da bir XML sütununda saklanan XML güncelleştirmesi
- 3. SQL deyimi sonuçları Ben bir SQL deyimi var
- 4. Selenium RC: Bir tablonun sütununda bulunan bir öğenin nasıl tıklatılacağı
- 5. Bir tablonun SQL sütunlarını gruplama
- 6. CASE deyimi true olduğunda başka bir tablonun değerini döndürmek için SQL
- 7. SQL Delete Deyimi, bir dataGridView
- 8. sql sunucusunda bir test yürütme Aşağıdaki yürütme ediyorum 2005
- 9. sql artı terminale bir .sql dosyası yürütme
- 10. Bir sorgudan döndürülen değerlerin bir listesinin başka bir tablonun sütununda olup olmadığını kontrol etmek için T-SQL
- 11. SQL tablonun boş bir satırı nasıl eklenir?
- 12. SQL: bir sütun sütununda yalnızca tek bir sütunun ayarlanması zorunluluğudur
- 13. sql SQL deyimi .net
- 14. başka bir durum pdo sql deyimi
- 15. HQL'de bir Union SQL deyimi nasıl yapılır?
- 16. Aynı tablonun birden çok sorgusunu tek bir SQL deyimine birleştirmek
- 17. Tablo sütununda bir listeyi ayırma
- 18. Bir sql içinde bir "if" türü deyimi, burada
- 19. Bir sql içinde bir Case deyimi kullanmak mümkün mü? Gönderen
- 20. SQL tablo satırlarını tek bir SQL deyimi ile güncelleştirme
- 21. Bir tablonun bir sütununu ölçekleme değerine güncelleştirme
- 22. bir agrega bir UPDATE deyimi
- 23. Saklanan Yordamlar .sql dosyaları
- 24. Bir tablonun satırlarına ekleme
- 25. Mysqldump bir INSERT deyimi aşağıdaki deyimi ile
- 26. bir tablo sütununda sağ PLSQL
- 27. Oracle: bir SELECT deyimi
- 28. Nasıl bir IN deyimi
- 29. bir deyimi Örneğin
- 30. Bir vaka deyimi ruby
5 milyon INSERT ifadesinin yürütülmesi biraz zaman alacaktır. Set tabanlı bir yaklaşım mümkün değil mi? –
Korkunç bir veri modeli tasarımınız var ve bir probleme aşırı tasarlanmış bir çözüm var. – SQLMason
Bize bu verinin bazı örneklerini göster. Bu çok kötü bir tasarımdır ve iyi performans gösteren bir şekilde ele alınması son derece zordur. En iyi umudunuz, bu verilerin çoğunun daha ilişkisel bir şeye indirgenebilmesidir. – RBarryYoung