INF: تأثيرات عميل على SQL Server الإنتاجية

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

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

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

اتصال 1

use pubsgoselect convert(char(30), GetDate(), 9) "Start Time"go            Begin transaction   Go   ==>   Send to SQL Server and process results            Update authors set au_lname = au_lname   Go   ==>   Send to SQL Server and process resultsCommit / Rollback transaction   Go   ==>   Send to SQL Server and process resultsselect convert(char(30), GetDate(), 9) "End Time"go				

الاتصال 2

use pubsgoselect convert(char(30), GetDate(), 9) "Start Time"gobegin transactionif(0 = @@ERROR)begin   update authors set au_lname = au_lname   if(0 = @@ERROR)   begin      commit transaction   end   else   begin      rollback transaction   endendgo    ==>   Send to SQL Server and process resultsselect convert(char(30), GetDate(), 9) "End Time"go				

شبكة الاتصال Trips ذهاباً

يتطلب الاتصال 1 trips الثلاثة إلى كمبيوتر ملقم SQL:
  • بدء المعاملة
  • التحديث
  • الالتزام / المعاملات الاستعادة
يتطلب الاتصال 2 رحلة واحد لإكمال التحديث.

إلغاء الاستعلام

كل المكتبة - DB APIs ODBC ودعم معالجة استعلام غير متزامن. على سبيل المثال، مكتبة DB يستخدم الدالة dbdataready للسماح العميل الاستقصاء حالة إكمال الاستعلام.

في قاعدة بيانات مكتبة الدالة dbdataready ويرتبط قيمة DataReadySleep. للحصول على معلومات إضافية حول مفتاح التسجيل DataReadySleep الرجاء مراجعة المقالة التالية في "قاعدة المعارف لـ Microsoft:
159234: INF: كيفية تغيير القيمة السكون المستخدمة بواسطة Dbdataready

تأثير أوقات السكون في التوقيت

بشكل افتراضي، قيمة السكون 250 ميلي ثانية.

يجعل الاتصال 1 trips المستديرة الثلاثة بـ SQL Server. بشكل افتراضي، العميل يواجه الحد أدنى 750 بالمللي ثانية لوقت الانتظار نهايتها، وليس حساب الوقت لنقل الشبكة الفعلية. يتم حساب وقت الانتظار من (250 ميلي ثانية * 3) = 750 مللي ثانية.

الاتصال 2 يجعل رحلة واحد ثم واجه الحد أدنى من 250 ميلي ثانية من وقت الانتظار نهايتها، وليس حساب الوقت نقل شبكة الاتصال الفعلية.

يمكنك تغيير سرعة هذا المثال بواسطة ضعفي عامل ثلاثة ، ببساطة الاستفادة من بناء جملة SQL للعمليات وإزالة اثنين الشبكة trips الدورة.

كيف تؤثر Roundtrips الشبكة على المستخدمين الآخرين

يحتوي اتصال 1 معاملة مفتوحة الحد أدنى من 500 مللي ثانية. بعد فتح المعاملة يستغرق 500 مللي ثانية لإكمال التحديث وأكمل ثم أو التراجع عن المعاملة. يمنع التزامن قاعدة بيانات المستخدمين الآخرين من الوصول إلى السجلات الذي تقوم بتعديله.

الاتصال 2 يحتفظ المعاملة المفتوحة فقط طالما ضروري لإكمال العملية. على كمبيوتر معالج واحد Pentium ميغاهرتز 133 يستخدم كل من SQL Server و ISQL/w ، يتم مشاهدة توقيت التالية.

ملاحظة: لا يتم إظهار "الإدخال/الإخراج الموجودة في الشبكة" النهائية في أحد الأمثلة التالية. بعد إتمام commit أو العودة إلى الحالة السابقة التأمينات تم إصدارها ولكن لا يتم تدوين الإدخال/الإخراج النهائي.
   Begin transaction                5 milliseconds   Update                          20 milliseconds   Commit/Rollback transaction      7 milliseconds      TOTAL                        32 milliseconds				

سوف يكتمل الاتصال 2 بالمللي 32 تقريباً بينما تتطلب إطار معالجة أكبر 1 اتصال وتمتد الوقت زمن المعاملة بشكل كبير.
   Begin transaction                5 milliseconds   Network I/O                    250 milliseconds   Update                          20 milliseconds   Network I/O                    250 milliseconds   Commit/Rollback transaction      7 milliseconds      TOTAL                       532 milliseconds				

كما هو موضح سابقًا وقت الشبكة عامل بسيطة ثلاثة. ومع ذلك، يتم تأمين تأثير المثال يفرض على المستخدمين الآخرين قاعدة البيانات عامل 16 (532/32 = 16؛ تقريبًا).

الآن لنفترض أن هذا المثال بسيط من كمبيوتر محمول بعيد الاتصال باستخدام مودم بسرعة 28.8. بالإضافة إلى تأخير مللي ثانية 250 المفروضة من قبل المعلمة dbdatareadysleep الوقت المستغرق بالفعل إرسال المعلومات عبر ارتباط بطيء appreciable. اتصال 1 قد تؤثر على قاعدة بيانات المستخدمين الآخرين بواسطة عامل أكبر حتى أثناء الاتصال 2 بشكل أساسي تتأثر سرعة الكمبيوتر العميل. يتم إرسال الأمر مرة واحدة، معالجة في SQL Server بالمللي ثانية 32. المستخدم فقط نظام الذي يواجه وجود بطء هو المستخدم البعيد وهو كما هو متوقع تبعاً المودم بطيئة.

وقت المدة الانتقالية العميل

المدة الانتقالية بين المهام العميل هو فترة الوقت المنقضي أثناء معالجة العميل النتائج التي تلقيه. إذا نظرت مرة أخرى في اتصال 1 يمكنك بشكل سريع مشاهدة كيف قد يؤثر ذلك على العملية. إذا كان ميلي 10 إضافية مطلوبة عميل لمعالجة مجموعة نتائج ، يمكنك إضافة آخر 30 مللي ثانية إلى الوقت المعاملة الكلي و آخر بعد 20 مللي ثانية إلى الوقت زمن المعاملة.

دعنا التبديل الأمثلة مرة أخرى. في هذه الحالة يوجد جدول مخزون من نظام عبر إنترنت. قضته الأشهر تطوير تثبيت ما يجب أن يكون نظام معالجة fastest ترتيب عبر الإنترنت في المحفوظات. يمكن للمستخدمين البحث شراء ، واحتفظ عربة تسوق بين خيارات أخرى. هذا هو جدول tbllnventory:
   tblInventory      iProductID       int      strTitle         varchar(50)      strDescription   varchar(255)      iSize            int      iInStock         int      iOnOrder         int      iType            int				

تريد شراء بعض cereal. ومع ذلك، أريد راجع ما هو متوفر. يمكن لنا تعريف cereal كتابة 2، بحيث التطبيق مشكلات الاستعلام التالي. في هذا المثال، تحتوي قاعدة البيانات 750 cereal ذات الصلة العناصر.
   Select strTitle, strDescription, iSize, iInStock from tblInventory   where iType = 2				

SQL Server سيتم ترجمة تحليل الاستعلام و ثم البدء إلى إرجاع النتائج. يتم الحصول على تأمين المشترك على صفحات المناسبة. تذكر التي المشتركة التحديث كتلة التأمينات "و" إدراج "و" عمليات حذف.

في نفس الوقت بسبب استخدام التطبيق الخاص بك nationwide ، ستة الآخرين محاولة وضع cereal الطلبات.

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

يبدو مثل إجراء بسيط. حدد مجموعة نتائج من SQL Server ثم إدراج القيم الموجودة في مربع قائمة. يمكن إضافة كمبيوتر Pentium ميغاهرتز 133 العناصر 750 إلى مربع قائمة في ثانية واحدة فقط أكثر. تعطيل مربع القائمة أثناء ملفات فإنه يأخذ فقط بثلث ثانية. يمكنك تقليل وقت استتار العميل بشكل كبير عن طريق ببساطة تعطيل مربع القائمة.

قد يكون حتى inclined لتغيير العملية حدد لتقليل في تأمين إضافية. الحد من التعرض تأمين المشتركة بواسطة تغيير الاستعلام التالي.
   Insert * into #tblSelect from   Select strTitle, strDescription, iSize, iInStock from tblInventory				

   Select * from #tblSelect				

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

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

كما ترى، يمكن تشغيل العميل لف pivotal في سرعة نقل قاعدة البيانات. يجب أن تكون حذراً بشكل خاص عند العمل مع أنظمة البعيد و التقارير. مقدار الوقت الذي تستغرقه العميل معالجة نتائج أثناء الضغط التأمين له إمكانية تؤثر سرعة نقل قاعدة البيانات. قد تكون هذه الأنواع من المشكلات الثابت راجع يمكن أن تكون نقاط استتار توقيت 100 مللي ثانية ومن الصعب مشاهدة مع الإجراء sp_who تخزين. استخدام ارتباط بطيء لمشاهدة السلوك بسرعة. تشغيل التطبيق من ارتباط RAS ومشاهدة السلوك العام مثل. يمكنك أيضاً الاستفادة الكاملة من الأداة المساعدة تتبع SQL بعناية ملف تعريف التطبيق.

للحصول على مزيد من المعلومات، الرجاء مراجعة المقالات التالية في "قاعدة معارف Microsoft:
165951: INF: نتيجة المعالجة لـ SQL Server

172117: INF: كيفية رمز Transact-SQL التشكيل الجانبي في الإجراءات المخزّنة و المشغلات

162361: INF: فهم وإنشاء فض SQL Server منع مشاكل

167610: INF: تقييم انخفاض أداء الأداء الاستعلام

48712: INF: معالجة مهلة بشكل صحيح في مكتبة DB

117143: INF: متى و كيفية استخدام dbcancel() أو sqlcancel()
أداء ك ب/ث WAN

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

خصائص

رقم الموضوع: 180775 - آخر مراجعة: 02/10/2014 01:37:43 - المراجعة: 3.0

Microsoft SQL Server 6.5 Standard Edition

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