SQL الخادم - تشغيل ملفات البرامج النصية كبيرة
-
03-07-2019 - |
سؤال
ولدي جدول قاعدة البيانات في الخادم التنمية التي يسكنها الآن تماما بعد أن ضبطه تعمل مع روتين استيراد لملف CSV يحتوي على 1.4 مليون الصفوف.
وركضت معالج النشر قاعدة على الطاولة، والآن لدي SQL النصي 286MB على آلة المحلية. المشكلة هي، وأنا لا يمكن معرفة كيفية تشغيله. إذا كنت تحميله في SQL Server إدارة ستوديو اكسبريس أحصل على نافذة تنبيه تقول "العملية لا يمكن أن تكتمل".
وأي أفكار عن كيفية يمكنني الحصول على هذا البرنامج النصي SQL لتشغيل؟
المحلول
والجري شيء كبير داخل معاملة واحدة ليست فكرة جيدة. لذلك، أود أن أوصى كسر الملف إلى أجزاء أصغر، أكثر قابلية للإدارة.
وثمة خيار آخر هو أن ننظر إلى بعض الطرق الأخرى لاستيراد البيانات CSV مباشرة.
نصائح أخرى
واستخدام المساعدة Sqlcmd أداة لتنفيذ الملف ..
sqlcmd -S myServer\instanceName -i C:\myScript.sql
في حالة يكون لديك وغير المبررة "خطأ البرنامج النصي" لمزود الملفات الكبيرة (> 100MB) والذي يتضمن العديد من INSERT، مجرد استبدال "INSERT INTO" ب "GO INSERT INTO" في الملف، الأمر الذي سيقلل من حجم الصفقة.
وهذه الأداة ( الكبير سيناريو SQL عداء الملف ) على كود بلاكس سيتم تشغيل أي ملف نصي الحجم مع سجل واجهة المستخدم الرسومية.
وإضافة إلى الإجابة غولزار ناظم في:
إذا كنت لا تزال تحصل على الفشل، محاولة تحديد في مخطط الشفرة ملف SQL باستخدام -f
الخيار:
وsqlcmd -S myServer\instanceName -d databaseName -i C:\myScript.sql -f 65001
وكنت أحاول أن استيراد ملف .dump من سكليتي (UTF-8 افتراضيا)، وSQLCMD أبقى رمي خطأ بعد أن واجهت الطابع الخاص الأول. -f 65001
ثابتة بالنسبة لي.
لماذا لا مجرد استخدام DTS لاستيراد ملف CSV مباشرة؟