INF: تطوير حزمة DTS ، ونشر الأداء

هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية

اضغط هنا لرابط المقالة باللغة الانجليزية242391
تمت أرشفة هذه المقالة. وتظهر "كما هي" ولن يتم تحديثها بعد الآن.
الموجز
الغرض من هذه المقالة توفير بعض المعلومات المفصلة للمساعدة في تطوير ونشر حزم SQL Server 7.0 البيانات تحويل خدمات (DTS). يتم أيضاً توفير تلميحات لتحسين أداء الحزمة.

للحصول على معلومات حول هذا الموضوع في SQL Server 2000 راجع "كتب SQL Server الفورية".
معلومات أخرى

إجراء اتصالات البيانات المرنة

تعتبر حزمة DTS وحدة الذاتي المضمنة بشكل كامل. تتم قراءة كافة معلومات الاتصال إلى مجموعة خصائص الاتصال في وقت التصميم معلومات الاتصال حتى في UDLs و DSNs ODBC. إذا قمت بتغيير ODBC DSN أو UDL OLEDB بعد إنشاء الحزمة هذا التغيير أي تأثير على الحزمة. هذا مهم تذكر عند محاولة ترحيل حزم من بيئة تطوير إلى الإنتاج.

عند استخدام اتصالات البيانات SQL Server استخدام (محلي) للحصول على اسم الملقم لجعل من السهل نقل الحزمة من ملقم إلى ملقم حيث أن اسم الملقم قد تم حل في وقت تنفيذ الحزمة. caveat واحد إلى هذا الأسلوب يتطلب أن يتم تشغيل الحزمة ثم تحرير على SQL Server الكمبيوتر نفسه.

يمكنك أيضاً استخدام مهمة عمل البرنامج نصي ActiveX أو برنامج مجمّع لتعديل خصائص الحزمة أثناء وقت التشغيل. لتعديل الحزمة من داخل نفسه إنشاء مهمة عمل ActiveX Script يسبق المهام مضخة البيانات وتعديلها الحزمة أثناء تنفيذه. للحصول على مؤشر مرجع حزمة DTSGlobalVariables.Parent. ومن هناك يمكنك تغيير أي من خصائص الحزمة على الرغم من أنه يتطلب مهارات برمجة القليل.

التالي مثال من SQL المباشرة الموضوع، "مهام Script ActiveX" ، على كيفية تغيير الخاصية DataSource اتصال مع برنامج نصي ActiveX:
   Function main()   dim oPackage   dim oConn     'Get package object     set oPackage = DTSGlobalVariables.parent     'Get a handle to the desired connection.     set oConn = oPackage.connections(1)     'Modify the datasource.     oConn.datasource = "newServerName"     'Release object handles.     set oPackage = nothing     set oConn = nothing    Main = DTSTaskExecResult_SuccessEnd function				
إذا تريد مزيد من التحكم لا مانع ترميز مزيد من مراعاة إنشاء الحزمة من البداية أو تعديل الحزمة مع برنامج خارجي قبل تشغيله.

لإنشاء برنامج تحميل حزمة وتعديلها إنشاء حزمة قالب باستخدام "معالج DTS" أو "مصمم DTS وقم بحفظه. كتابة برنامج Visual Basic بتحميل الحزمة وقم بتعديل الخصائص المطلوبة ثم استدعاء أسلوب التنفيذ على كائن الحزمة لتشغيل الحزمة.

لإنشاء برنامج لإنشاء حزمة من البداية إنشاء حزمة نموذج أولي باستخدام "معالج DTS" أو "مصمم DTS وحفظه إلى SQL Server المحلية. استخدام الأداة المساعدة ScriptPkg في مقالة "قاعدة معارف Microsoft" التالية لإنشاء قالب لرمز الحزمة:
239454INF: ScriptPkg الأداة بإنشاء رمز طراز الكائن DTS المراد استخدامه التعليمات DTS برمجياً
باستخدام هذا القالب كمرجع ، كتابة التعليمات البرمجية الخاصة بك لإنشاء حزمة استناداً إلى إدخال المستخدم.

لاحظ أن لكل منهما من الحالات السابقة مشروع Visual Basic يحتاج إلى أن مرجع إلى مكتبة كائنات Microsoft DTSPackage.

هام: عند تنفيذ حزمة من أحد برامج المكتوبة في Visual Basic و مراقبة الحزمة أو أحداث مهمة ، يجب تكوين كافة الخطوات في الحزمة تنفيذ على مؤشر الترابط الرئيسي. يكون هذا بسبب وجود قيود في Visual Basic تمنعه من معالجة متعددة الاستدعاءات المتزامنة إلى الأحداث الخاصة به بشكل صحيح.

التحكم في الحزم مع المتغيرات العمومية

المتغيرات العمومية الوصول إليها فقط من المهام البرنامج النصي ActiveX والبرامج النصية سير تحويلات ActiveX. لا يمكن استخدامها بشكل مباشر في عبارات SQL أو خصائص الاتصال. ومع ذلك، يمكن استخدام مهمة عمل البرنامج نصي ActiveX تعديل عبارة SQL أو خصائص الاتصال استناداً إلى متغير عمومي. وفيما يلي مثال على مهمة البرنامج النصي ActiveX التي يمكن استخدامها لتغيير عبارة SQL لمهمة مضخة بيانات استناداً إلى المتغير العام المسمى 'booktype':
Function Main()   dim oPackage   dim oPump        'Get a handle to the Package object.	set oPackage = DTSGlobalVariables.Parent	'Get a handle to the desired Datapump Task.	set oPump = oPackage.Tasks("DTSTask_DTSDataPumpTask_1").CustomTask   	'Alter the datapump SQL statement.	oPump.SourceSQLStatement = "select * from pubs..titles WHERE type _  = ''" + DTSGlobalVariables("booktype") + "''"	Main = DTSTaskExecResult_SuccessEnd Function				
ملاحظة: يتم عرض الوصف مهمة في مصمم DTS ولكن لا يمكن استخدامه كمرجع مهمة في برنامج نصي ActiveX مباشرة. يجب أن يتم استخدام اسم المهمة إلى المهمة من برنامج نصي ActiveX. الحصول على اسم المهمة نظرة خصائص سير العمل لـ اسم الخطوة. اسم المهمة هو نفس الخطوة ما عدا كلمة يتم استبدال 'الخطوة' مع 'المهام'. على سبيل المثال، يصبح DTSStep_DTSDataPumpTask_1 DTSTask_DTSDataPumpTask_1.

تمرير معلمات إلى حزمة DTS

برنامج DTSRun لا يقبل أية معلمات سطر الأوامر التي يمكن تمرير الحزمة عند وقت تنفيذ. لتمرير المعلومات إلى حزمة عند وقت التشغيل "، يجب أن تكون قراءة من ملف المعلمات أو الاستعلام عنها من جدول قاعدة بيانات برمجياً.

ملاحظة: إذا أدوات SQL Server 2000 أو مثيل مسمى من SQL Server 2000 مثبت على ملقم SQL Server 7.0 مثبتاً كمثيل الافتراضي البرنامج DTSRun يمكن قبول معلمة سطر أوامر /A لتمرير القيم من سطر الأوامر إلى المتغيرات العمومية المعرّفة في حزمة DTS SQL Server 7.0.

وفيما يلي مثال عن المهام Script ActiveX يقرأ سطر من ملف النصي لتعيين متغير عمومي. ثم يمكن استخدام هذا المتغير العمومية لتعديل سلوك حزمة كما هو موضح في قسم "التحكم الحزم مع العمومية متغيرات" من هذه المقالة.
Function main()  Dim fso	'This will serve as a handle to a file system object.  Dim ofile	'Handle for accessing a file.    'Get a file system object for manipulation files.    Set fso = CreateObject("Scripting.FileSystemObject")    'Open the text file.    Set ofile = fso.OpenTextFile("c:\test.txt")    'Read line from the file into the global variable.    DTSGlobalVariables("myGlobalVar").Value = ofile.ReadLine    'Close the "parameter" file.    ofile.Close    Main = DTSTaskExecResult_SuccessEnd function				
يظهر المثال التالي كيفية استخدام مهام ActiveX Script قراءة المعلمات من جدول ملقم SQL. يقرأ قيمة العمود paramvalue في my_param_table التعليمات البرمجية ثم يستخدم لتعيين متغير عمومي. يستخدم هذا المثال كائنات الموزعة إدارة SQL (DMO) التفاعل مع SQL Server ولكن يمكنك إنجاز نفس الشيء باستخدام كائنات بيانات ActiveX (ADO) أو أسلوب آخر الوصول إلى البيانات.
Function main()Dim oServer 		'DMO Server object.Dim oResult		'Result set.Dim sParamValue	'Create a SQLDMO server object.	Set oServer =  CreateObject("SQLDMO.SQLServer")	' Make a connection to the local server.	oServer.Connect ".", "sa"	'Select the desired row from the table.	set oResult = oServer.Databases("pubs").ExecuteWithResults_("select  paramvalue from  my_param_table")	'Retrieve the first row, first column from the results.	sParamValue = oResult.GetColumnString (1,1)	'Set the global variable.	DTSGlobalVariables("MyGlobalVar").Value = sParamValue	Main = DTSTaskExecResult_SuccessEnd function				

كتابة مهام DTS مخصص في Visual Basic

من الممكن كتابة المهام DTS المخصصة في Visual Basic. يتوفر مثال عن "المهمة المخصصة" في Visual Basic بدون واجهة مستخدم في دليل \Devtools\Samples\DTS على القرص المضغوط الخاص بـ SQL Server. فيما يلي العديد من المشكلات الشائعة عند التي تتعامل مع مهام Visual Basic مخصصة في DTS:
  1. تنفيذ المهام المخصصة كتابتها ضمن Visual Basic يقوم بتطبيق واجهة كما يجب أن DTS.CustomTaskUI لكل حدث في الواجهة أو أنها سيؤدي إلى "انتهاك وصول".
  2. إذا كنت تقوم بتطوير مهمة مخصصة Visual Basic مع واجهة مستخدم فمن المستحسن تطبيق SQL Server المزود بحزمة الخدمة Service Pack 1 (SP1). يدمج SP1 عدة تحسينات لتسهيل التطوير UI.
  3. تكون المهام Visual Basic الشقة مترابطة أثناء مؤشر ترابط DTS مجاني. لتنفيذ مهمة كتابتها ضمن Visual Basic يجب أن يتم تنفيذها على مؤشر الترابط الرئيسي أو سيؤدي "انتهاك وصول". يعيّن DTS إشارة المناسب بشكل افتراضي. لا يجب على المستخدم تغيير هذه العلامة.

الحصول على معلومات على كيفية الحزم DTS رمز

في SQL 7.0 هناك نماذج متعددة على القرص المضغوط ضمن المجلد \Devtools\Damples\DTS. يتضمن نموذج "المهمة المخصصة" (Visual Basic) ثم مخصص تحويل (C++). تعد بعض الحزم نموذج في الذاتي استخراج DTSDemo.exe القابل للتنفيذ.

المثال الأكثر versatile هو ScriptPkg جزء من Dtsdemo.exe. يحتوي ScriptPkg على التعليمات البرمجية المصدر لـ Visual Basic الذي يحول حزمة حفظ إلى الملقم المحلي في التعليمات البرمجية لـ Visual Basic. يتم استخدام هذا المثال أفضل لـ:
  1. إنتاج الأمثلة Visual Basic عن طريق برمجة حزمة DTS موجودة.
  2. تظهر كيفية رمز برنامج التشغيل flatfile DTS التي لم يتم توثيقها في SQL المباشرة.
  3. تحويل حزمة إلى نص بحيث يمكن إضافتها إلى وإعادة تعقب في SourceSafe.
فيما يلي العديد من المشكلات المعروفة مع المثال ScriptPkg:
  1. عمليات البحث عن مضخة بيانات التي يتم كتابتها بشكل صحيح.
  2. إذا كانت الحزمة طويلة جداً ثم النص المنشأ لا تتم معاملته على أنه دالة واحدة في Visual Basic إلى بسبب وجود قيود على عدد الأسطر في دالة واحدة. سيكون لديك لتقسيم ملف البرنامج النصي إلى دالات متعددة على الجهاز للحصول على Visual Basic ترجمة التعليمات البرمجية الخاص بك.

تحسين الأداء حزمة DTS

استخدام التحميلات Parallel

DTS قادر على تشغيل مهام متعددة في نفس الوقت. ومع ذلك، يمكن فقط معالجة كل اتصال في حزمة DTS مؤشر ترابط واحد في كل مرة. وهذا يعني أن مضخات البيانات التالي في حزمة يتم كافة تسلسل:

A-> B و A-> B
A-> B و A-> C
A-> B و C-> B

أو عدم استخدام رموز نفس أو مختلفة للاتصال يجعل لا يوجد اختلاف.

الطريقة الوحيدة للحصول على التنفيذ المتوازي من المهام في إنشاء اتصالات متعددة إلى نفس قاعدة البيانات مع أسماء مختلفة. على سبيل المثال-> B و C-> D يتم تنفيذها في نفس الوقت حتى إذا كان B و D اتصالات مختلفة إلى نفس الملقم وقاعدة البيانات لقاعدة بيانات.

يمكن استخدام قيود الأسبقية فرض ترتيب تنفيذ المهمة ومنع parallelism للمهام المحددة حسب الضرورة.

إدراج حجم الحجز

المعلمة الأكثر أهمية في مهمة مضخة البيانات هي إدراج حجم الالتزام. إن هذه الخاصية ذات الصلة فقط عندما تكون الوجهة SQL Server. التحكم في عدد الصفوف يتم إدراجها قبل تم تسليم المعاملة؛ كبيرة الحجم. بشكل افتراضي هذا هو 0; كافة الصفوف جزء من معاملة واحدة. هذا هو الإعداد الأكثر أمناً لأن يكون على أية أخطاء SQL Server بإظهار إعادة كافة التغييرات. ومع ذلك، فإنه يمكن تتطلب سجل معاملات كبير جداً و يؤدي إلى طويلة جداً وقت استجابة عند إلغاء حزمة و يكون عدّاد إنتاجية عند صف واحد في نهاية التحميل كبير يؤدي تحميل بالكامل إلى فشل. يتم مشاهدة إيقاف مؤقت ملحوظًا في نهاية كل فاصل زمني الالتزام بينما يتم تنفيذ الصفوف. حجم الإيداع 0 أسرع, ولكن يتم قيم أخرى جيدة 10,000, 1 و 1000 في ترتيب إنقاص سرعة. مفيد 1 لأن التراجع عن صف واحد فقط على أي فشل.

لاحظ أن تعيين عدد أخطاء إلى أي رقم > 1 أي تأثير إذا كان حجم الالتزام إدراج 0. عدد أخطاء بحساب عدد المعاملات مع وجود خطأ لا عدد الصفوف.

في SQL Server 7.0 يمكن تعيين قيمة إدراج حجم تنفيذ في المقطع حركة البيانات من علامة التبويب خيارات متقدمة من خصائص المهمة البيانات التحويل.

DTS "و" المعاملات الموزعة

توفير حزم DTS اعتماد المعاملات الموزعة لموفري تلك التي تدعم DTC. يجب تشغيل خدمة DTC من المعاملات حزمة ثم انتقل إلى العمل. بالإضافة إلى ذلك، يجب أن يعتمد موفر كل في المعاملة DTC.

يتم التحكم في خصائص المعاملة حزمة في علامة التبويب خيارات متقدمة من خصائص الحزمة.

افتراضياً، كل خطوة في حزمة معالجة المعاملات الخاصة به الخاصة ثم لم تنسيق المعاملات الخاصة به عبر DTC. بالسرد مهمة في معاملات DTC يجب عليك تعيين خانة الاختيار "الانضمام المعاملة إذا كان موجوداً" في خصائص سير العمل للمهمة. خيارات معاملات DTC الأخرى مهمة "تنفيذ المعاملة على الإكمال الناجح هذه الخطوة" و "الاستعادة المعاملة عند الفشل."

لاحظ أن الحزم لا يدعم ملقم المعاملات لـ Microsoft "(MTS).

ظهور رسالة خطأ

عند استخدام محلي لملقم قاعدة بيانات للاتصال من حزمة ومن ثم يتم تحرير الحزمة من ملقم آخر يريد هذا الشخص انظر تحويلات ، تحدث رسالة الخطأ التالية:
مصدر الخطأ: "موفر" Microsoft OLE DB لـ SQL Server وصف خطأ: لا يمكن فتح قاعدة البيانات المطلوبة في تسجيل الدخول 'xxxxxxx'. فشل تسجيل الدخول."
خدمات تحويل البيانات DTS ActiveX ،

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 242391 - آخر مراجعة: 12/05/2015 16:02:53 - المراجعة: 1.2

Microsoft SQL Server 7.0 Standard Edition

  • kbnosurvey kbarchive kbmt kbinfo KB242391 KbMtar
تعليقات