در مورد چیزهای جالب از دنیای آن، دستورالعمل ها و بررسی ها. حداکثر درجه موازی سازی - مقدار مطلوب SQL را حداکثر درجه موازی را انتخاب کنید

این راز نیست که فکر کردن در مورد مشکلات پیکربندی سرور SQL مرتبط با افزایش عملکرد، کارشناسان بسیاری از آنها انتخابی را به نفع افزایش سخت افزار انتخاب می کنند. اما آیا همیشه توجیه شده است؟ آیا تمام روش های راه اندازی سرور در حال حاضر استفاده می شود؟ شناخته شده است که کار با پارامترهای پیکربندی و تغییر مقادیر پیش فرض آنها قادر به بهبود عملکرد و سایر ویژگی های این سیستم است. در میان این گزینه های پیکربندی، پیکربندی SQL دارای یک گزینه با بسیاری از سوالات است، این گزینه است - حداکثر درجه موازی (DOP) - در اینجا در مورد آن و اجازه دهید در مورد آن صحبت کنید.

حداکثر درجه موازی (DOP) گزینه تعداد موضوعات را تعیین می کند که SQL Server می تواند بر اساس درخواست و به معنی تعداد پردازنده های سرور استفاده شود. پارامتر پیش فرض 0 است - حداکثر درجه موازی. به عنوان مثال، اگر شما 24 هسته دارید - پس از آن مقدار "حداکثر درجه موازی سازی" برابر با 24 و بهینه ساز خواهد بود، اگر آن را مورد نیاز، می تواند از تمام پردازنده ها برای اجرای یک دستورالعمل استفاده کند، یعنی پرس و جو با 24 جریان همبستگی داشته باشید. برای اکثر موارد، این خوب است، اما نه برای همه. همچنین، همیشه خوب نیست، با استفاده از مقدار این پارامتر پیش فرض. به عنوان مثال، پیکربندی این پارامتر ممکن است لازم باشد، به عنوان مثال، در وضعیت زیر، ما یک برنامه کاربردی داریم که در آن همه کارکنان اطلاعاتی در مورد عملیات روزانه ارائه می دهند و در یک دوره زمانی خاص، هر کاربر یک درخواست را انجام می دهد یک گزارش در مورد تمام عملیات کاربر برای برخی از گذشت زمان. به طور طبیعی، اگر شکاف زمانی بزرگ باشد، این پرس و جو برای مدت زمان طولانی اجرا خواهد شد و هنگام نصب DOP به طور پیش فرض، تمام پردازنده های موجود را می گیرد، که به طور طبیعی بر عملکرد سایر کاربران تاثیر می گذارد. در نتیجه، تغییر ارزش DOP، ما می توانیم بدون تغییر در پرس و جو خود را برای افزایش زمان پاسخ سرور SQL از دیگر کاربران.
MS توصیه می کند ارزش را به صورت زیر تنظیم کنید:

تنظیم پارامتر در TSQL کل برای سرور:

EXEC SP_CONFIGURE "MAX MEAL MAGAINEM"، 4؛ تنظیم مجدد

شما همچنین می توانید این مقدار را برای یک پرس و جو خاص TSQL تنظیم کنید:

استفاده از AdventureWorks2008R2؛ برو انتخاب ProductID، OrderQty، Sum (Lineetal) به عنوان Totalfrom Sales.SalesOrderDetail که در آن UnitPrice< $5.00 GROUP BY ProductID, OrderQty ORDER BY ProductID, OrderQty OPTION (MAXDOP 2); GO

در این مثال، "HINT" MAXDOP مقدار پیش فرض حداکثر درجه پارامتر موازی را تغییر می دهد. مشاهده تنظیمات فعلی می تواند باشد:

exec sp_configure "نمایش پیشرفته"، 1؛ تنظیم مجدد؛ EXEC SP_CONFIGURE "MAX MEAL MAGAINEM"

حالا بیایید ببینیم که چگونه این مقدار تحت تاثیر نرخ اجرای پرس و جو قرار می گیرد. به منظور پرس و جو تست، نوشته شده در بالا، برای مدت طولانی، اضافه کردن یکی دیگر از انتخاب به آن. این درخواست فرم زیر را به دست می آورد:

< $5.00) dt2 WHERE dt.UnitPrice < $5.00 GROUP BY dt.ProductID, dt.OrderQty ORDER BY dt.ProductID, dt.OrderQty

در دستگاه تست من، ارزش "حداکثر درجه ی همبستگی" در 0. MSSQL توسط یک دستگاه با یک پردازنده 4 هسته ای راه اندازی می شود. من یک سری از آزمایشات را با مقادیر مختلف MaxDop انجام دادم: برابر با 1 - بدون هماهنگی پرس و جو؛ برابر با 2 - استفاده از تنها 2 هسته؛ برابر 4 - با استفاده از همه و بدون اشاره به تعیین گزینه ای که از عاقبت پیش فرض استفاده می کند. به منظور به دست آوردن آمار اجرایی، درخواست باید در زمان آمار مجموعه در گزینه، و همچنین فعال کردن دکمه صفحه نمایش پرس و جو در استودیو مدیریت. به طور متوسط \u200b\u200bنتایج به دست آمده، من هر پرس و جو را در چرخه 3 بار انجام دادم. نتایج را می توان در زیر مشاهده کرد:

DT.ProductIDID، DT.RODEQTY، SUM (DT.LINETOTAL) را به عنوان کل از Sales.SalesOrderDetail DT انتخاب کنید (انتخاب کنید * از Sales.SalesordEtail که در آن واحد< $5.00) dt2 WHERE dt.UnitPrice < $5.00 GROUP BY dt.ProductID, dt.OrderQty ORDER BY dt.ProductID, dt.OrderQty OPTION (MAXDOP 1); SQL Server Execution Times: CPU time = 45942 ms, elapsed time = 46118 ms. SQL Server Execution Times: CPU time = 45926 ms, elapsed time = 46006 ms. SQL Server Execution Times: CPU time = 45506 ms, elapsed time = 45653 ms.

از لحاظ پرس و جو، روشن است که هنگام نصب نکته (MaxDop 1)، پرس و جو بدون موازی انجام شد. میانگین زمان اجرای پرس و جو 45925.66 MS

DT.ProductIDID، DT.RODEQTY، SUM (DT.LINETOTAL) را به عنوان کل از Sales.SalesOrderDetail DT انتخاب کنید (انتخاب کنید * از Sales.SalesordEtail که در آن واحد< $5.00) dt2 WHERE dt.UnitPrice < $5.00 GROUP BY dt.ProductID, dt.OrderQty ORDER BY dt.ProductID, dt.OrderQty OPTION (MAXDOP 2); SQL Server Execution Times: CPU time = 51684 ms, elapsed time = 28983 ms. SQL Server Execution Times: CPU time = 51060 ms, elapsed time = 26165 ms. SQL Server Execution Times: CPU time = 50903 ms, elapsed time = 26015 ms.

هنگام نصب نکته (MaxDop 2)، پرس و جو به صورت موازی با 2 پردازنده انجام شد، می توان آن را بر تعداد اعدام از لحاظ اعدام پرس و جو مشاهده کرد. میانگین زمان اجرای پرس و جو 27054.33 MS

DT.ProductIDID، DT.RODEQTY، SUM (DT.LINETOTAL) را به عنوان کل از Sales.SalesOrderDetail DT انتخاب کنید (انتخاب کنید * از Sales.SalesordEtail که در آن واحد< $5.00) dt2 WHERE dt.UnitPrice < $5.00 GROUP BY dt.ProductID, dt.OrderQty ORDER BY dt.ProductID, dt.OrderQty OPTION (MAXDOP 4); SQL Server Execution Times: CPU time = 82275 ms, elapsed time = 23133 ms. SQL Server Execution Times: CPU time = 83788 ms, elapsed time = 23846 ms. SQL Server Execution Times: CPU time = 53571 ms, elapsed time = 27227 ms.

هنگام نصب یک اشاره (MaxDop 4)، پرس و جو به صورت موازی با 4 پردازنده انجام شد. میانگین زمان اجرای پرس و جو 24735.33 MS

DT.ProductIDID، DT.RODEQTY، SUM (DT.LINETOTAL) را به عنوان کل از Sales.SalesOrderDetail DT انتخاب کنید (انتخاب کنید * از Sales.SalesordEtail که در آن واحد< $5.00) dt2 WHERE dt.UnitPrice < $5.00 GROUP BY dt.ProductID, dt.OrderQty ORDER BY dt.ProductID, dt.OrderQty SQL Server Execution Times: CPU time = 85816 ms, elapsed time = 23190 ms. SQL Server Execution Times: CPU time = 85800 ms, elapsed time = 23307 ms. SQL Server Execution Times: CPU time = 58515 ms, elapsed time = 26575 ms.

این درخواست به صورت موازی و 4 پردازنده انجام شد. میانگین زمان پرس و جو 24357.33ms

لینک ها: http://support.microsoft.com/kb/2023536

هدف: بررسی اثر موازی SQL برای کار با درخواست 1C

ادبیات:

محیط آزمایش:

· ویندوز سرور 2008 شرکت R2

· MS SQL Server 2008 R2

· 1C Enterprise 8.2.19.90

شکل 1. خواص SQL "عمومی"


شکل 2. خواص SQL "Affansed"

ابزار:

· SQL Server Profiler

· 1C درخواست کنسول

درخواست تست:

انتخاب کنید

AK نام به عنوان نام

از

ثبت نام طبقه بندی فشار به عنوان AK

اتصال داخلی ثبت نام طبقه بندی فشار به عنوان AK1

توسط ac.kod \u003d ak1.kod

آماده سازی:

ما SQL Server Profiler را اجرا می کنیم، اتصال، رویدادها و ستون ها را تنظیم می کنیم، همانطور که در شکل 3 نشان داده شده است.


شکل 3. خواص ردیابی

انتخاب را برای پایگاه داده ما نصب کنید


شکل 4. فیلتر پایه

کاهش:

· حداکثر درجه موازی - MDOP

· آستانه SOST برای موازی - هزینه

تست یک برنامه درخواست متوالی (MDOP \u003d 1)


شکل 5. درخواست کنسول - زمان عملکرد 20 ثانیه.

سرور SQL Server "حداکثر درجه موازی سازی" سرور به 1 (بدون همبستگی) تنظیم شده است. ما به نتیجه پروفیل نگاه می کنیم (شکل 6)


شکل 6. طرح درخواست پیوسته

SQL Server یک طرح درخواست متوالی را تشکیل داده است، در حالی که: مجموع بارگیری CPU \u003d 6،750 (ها) و زمان اجرای پرس و جو \u003d 7،097 (ها)

تست یک برنامه درخواست موازی (MDOP \u003d 0، هزینه \u003d 5)

انتقال SQL Server به حالت موازی (در پرس و جو SQL):

از استاد استفاده کنید

exec sp_configure "نمایش گزینه پیشرفته"، 1؛

تنظیم مجدد با لغو

از استاد استفاده کنید

eXEC SP_CONFIGURE "MAX MAX PARANICEM"، 0؛

تنظیم مجدد با لغو

همان پرس و جو را انجام دهید (شکل 7)


شکل 7. درخواست کنسول - زمان اجرای 16 ثانیه.

نتیجه را در پروفیل بررسی کنید (شکل 8)


شکل 8. طرح درخواست موازی

SQL Server این زمان یک طرح پرس و جو موازی را تشکیل داده است، در حالی که مجموع بارگیری CPU \u003d 7.905 ثانیه و مدت زمان پرس و جو \u003d 3،458 ثانیه

تست یک برنامه درخواست متوالی (MDOP \u003d 0، هزینه 150)

ما سعی خواهیم کرد از طرح موازی با استفاده از پارامتر "آستانه هزینه برای موازی" خلاص شویم. به طور پیش فرض، پارامتر به 5. در مورد ما، از شکل گیری طرح موازی تنظیم شده است، امکان خلاص شدن از 150 (در پرس و جو SQL) وجود دارد:

از استاد استفاده کنید

exec sp_configure "آستانه هزینه برای همبستگی", 150 ;

اجرای پرس و جو را در این شرایط بررسی کنید (شکل 9)

شکل 9. درخواست کنسول - زمان اجرای 20 ثانیه.

نتیجه را در پروفیل بررسی کنید (شکل 10)


شکل 10. طرح درخواست پیوسته

SQL Server یک طرح درخواست متوالی را تشکیل داده است. مجموع بارگذاری CPU \u003d 7.171 ثانیه، زمان اجرای پرس و جو \u003d 7، 864 ثانیه.

نتیجه گیری:

· انجام یک پرس و جو تست در یک محیط سازمانی 1C با استفاده از سرور SQL Server Marnel PLAN، افزایش عملکرد قابل توجهی در مقایسه با یک برنامه متوالی (16 ثانیه در برابر 20 ثانیه - برنده 4 ثانیه)

· انجام پرس و جو تست توسط SQL Server هنگام استفاده از یک برنامه درخواست موازی، دو برابر سریعتر از زمان استفاده از یک برنامه درخواست متوالی (3.5 ثانیه. در برابر 7.1 ثانیه) را انجام دهید.

· Parallingism SQL سرور را نمی توان نه تنها با استفاده از پارامتر MDOP، بلکه همچنین پارامتر "آستانه هزینه برای موازی"

  • تدبیر

این راهنما برای مبتدیان به دنبال یک کتاب ساده در روسیه برای نصب طراحی شده است نسخه انگلیسی SQL Server 2012، که برای استفاده از SharePoint 2013 مورد استفاده قرار می گیرد.
این مقاله برای حرفه ای نیست

تمام کار به 3 مرحله تقسیم می شود:

  • نصب SQL Server 2012
  • تنظیم حداکثر درجه تنظیم پیکربندی سرور موازی
  • تنظیم درست حسابطراحی شده برای نصب SharePoint 2013
همچنین در مقاله این روند را توصیف می کند نصب مایکروسافت.چارچوب خالص. 3.5 در محیط MS سرور ویندوز 2012 R2 استاندارد.

توجه: تحت تصاویر برش بسیاری!

نصب SQL Server 2012

1. قبل از نصب، اطمینان حاصل کنید که فضای آزاد کافی بر روی هارد دیسک وجود دارد (در مورد من 2.7 گیگابایت طول کشید).
پس از شروع توزیع، مورد را انتخاب کنید " نصب و راه اندازی"در منوی سمت چپ، سپس" مورد "کلیک کنید" SQL Server جدید مستقل یا اضافه کردن ویژگی ها به نصب موجود":

2. جادوگر نصب را شروع کنید. آن را بررسی خواهد کرد. شما می توانید بر روی دکمه "نمایش جزئیات" کلیک کنید و یک گزارش دقیق را ببینید:

3. گزارش دقیق دکمه "OK" را فشار دهید:

4. کلید محصول را وارد کنید و دکمه "بعدی" را فشار دهید:

5. موافقت با شرایط موافقتنامه مجوز.
برای انجام این کار، یک تیک را قرار دهید " شرایط قرارداد را می پذیرم

6. در مرحله بازی راه اندازی، اولین مورد را انتخاب کنید " نصب SQL Server نصب"دکمه" بعدی "را فشار دهید:

7. در مرحله "انتخاب ویژگی" جشن " خدمات موتور پایگاه داده", "ابزار مدیریت - پایه"و" ابزار مدیریت - کامل"سپس دکمه" بعدی "را فشار دهید:

8. سپس نصب کننده چک دیگری را اجرا خواهد کرد. شما می توانید بر روی دکمه "نمایش جزئیات" کلیک کنید و یک گزارش دقیق را ببینید:

9. گزارش دقیق (در این مرحله، من یک خطا در "Microsoft Deta Framework 3.5 نصب شده است ..." قانون. درباره این زیر). دکمه "بعدی" را فشار دهید:

10. در مرحله «پیکربندی نمونه»، باید نمونه سرویس SQL Server را پیکربندی کنید.
من تکرار می کنم که این مقاله برای مبتدیان در نظر گرفته شده است. بنابراین، فرض می کنیم که SQL Server بر روی سرور شما نصب نشده است، به این معنی که شما تمام تنظیمات پیش فرض را ترک خواهید کرد. دکمه "بعدی" را فشار دهید:

11. در این مرحله، جادوگر نصب الزامات فضای دیسک را نمایش می دهد. دکمه "بعدی" را فشار دهید:

12. در مرحله پیکربندی سرور، باید یک حساب دامنه را برای سرویس مشخص کنید " موتور پایگاه داده SQL Server"پس از پر کردن فیلدهای" نام حساب "و" رمز عبور "، دکمه" بعدی "را فشار دهید:

13. در مرحله "پیکربندی موتور پایگاه داده"، به اندازه کافی برای اضافه کردن کاربر فعلی به مدیران SQL Server است. برای انجام این کار، روی دکمه "افزودن کاربر فعلی" کلیک کنید، سپس دکمه "بعدی" را کلیک کنید:

14. در مرحله بعدی، دکمه "بعدی" را فشار دهید:

15. بعد، جادوگر نصب دوباره چک را اجرا می کند و نتایج آن را نمایش می دهد. دکمه "بعدی" را فشار دهید:

16. در مرحله "آماده نصب"، جادوگر اطلاعات خلاصه را نمایش می دهد. در اینجا شما باید روی دکمه "نصب" کلیک کنید:

17. پس از تکمیل نصب، اطلاعات مربوط به عملیات تولید شده نمایش داده می شود:

18. در این مرحله قابل حمل برای راه اندازی مجدد کامپیوتر. در بعضی موارد (به عنوان مثال، هنگام نصب مایکروسافت .NET Framework 3.5)، جادوگر نصب خود یک پنجره را با یک پیشنهاد برای راه اندازی مجدد کامپیوتر نمایش می دهد. رد نکنید

تنظیم حداکثر درجه تنظیم پیکربندی سرور موازی

به طور پیش فرض، پارامتر "حداکثر درجه موازی" پارامتر 0 است.
SharePoint 2013 نیاز دارد که این پارامتر برابر با 1 باشد.
آسان است برای رفع!

1. راه اندازی مایکروسافت SQL Server Management Studio (شروع - تمام برنامه ها - مایکروسافت SQL Server 2012 - SQL Server Management Studio).

2. در صفحه اتصال به سرور، روی دکمه "اتصال" کلیک کنید.

3. راست کلیک بر روی سرور خود را در پنجره " Object Explorer"و انتخاب کنید" خواص":

4. در پنجره Properties سرور که در منوی سمت چپ باز می شود، صفحه را انتخاب کنید " پیشرفته"و لیست خواص در پایین صفحه را انجام دهید. مقدار پارامتر را تنظیم کنید حداکثر درجه موازی" که در 1 و روی "OK" کلیک کنید:

5. SQL Server Management Studio را متوقف نکنید، آن را مفید خواهد بود.

تنظیم حقوق حساب برای تنظیم SharePoint 2013

حساب، از طرف آن نصب شیرپوینت 2013، باید حقوق در سرور SQL را افزایش دهد.
این حساب توصیه می شود که نقش های زیر را ارائه دهید:
  • dbcreator
  • securityAdmin.
  • عمومی
1. در SQL Server Management Studio در پنجره " Object Explorer"گسترش آیتم" امنیت"سپس روی نقطه کلیک راست راست کلیک کنید" ورود به سیستم"و انتخاب کنید" ورود جدید":

2. در فیلد "نام کاربری" وارد شوید نام دامنه حساب که از آن شما قصد نصب و پیکربندی SharePoint 2013 را دارید.

3. در منوی سمت چپ، صفحه را انتخاب کنید " نقش سرور"و بررسی نقش" dbcreator "و" SecurityAdmin "، و همچنین مطمئن شوید که" عمومی تأیید "" نقش آن مشخص شده اند سپس کلیک کنید. ":

در حال حاضر SQL Server برای نصب SharePoint 2013 آماده است.

نصب مایکروسافت دات نت چارچوب 3.5 در MS Windows Server 2012 R2 Standart

در مرحله اول 9 نقطه " نصب SQL Server 2012"من یک خطا داشتم: آن را نصب نشد .Net Framework 3.5.
برای حل این مشکل، مراحل زیر باید انجام شود:

1. شما باید کنسول را باز کنید " مدیر سرور.".

2. در منوی سمت چپ، "داشبورد" مورد را انتخاب کنید.

3. در مرکز پنجره، بر روی "اضافه کردن نقش ها و ویژگی های" کلیک کنید.

4. در استاد که باز می شود، جست و خیز "قبل از شروع".

5. در مرحله "نوع نصب"، مورد را انتخاب کنید " نصب مبتنی بر نقش یا مبتنی بر ویژگی"دکمه" بعدی "را فشار دهید.

6. در مرحله بعدی، همه چیز را به طور پیش فرض ترک کنید و دکمه "بعدی" را فشار دهید.

7. با کلیک بر روی دکمه "بعدی"، گام "Server Roles" را پر کنید.

8. در مرحله "ویژگی ها"، ما علامت "دات نت فریم 3.5 ویژگی ها" را جشن می گیریم. دکمه "بعدی" را فشار دهید.

9. پس از اتمام فرآیند نصب، می توانید جادوگر "اضافه کردن و ویژگی های جادوگر" را ببندید.

10. آماده!

همه آسمان خوب و صلح آمیز بالای سر شما!

P.S. مبارک Cosmonautics روز!

حداکثر درجه موازی (DOP) - گزینه پیکربندی SQL Server اضافی، که با بسیاری از سوالات همراه است و به بسیاری از نشریات اختصاص داده شده است. در این مقاله وبلاگ او، نویسنده امیدوار است که وضوح کمی ایجاد کند که این گزینه و نحوه استفاده از آن را دارد.
اولا، نویسنده می خواهم هر گونه شک و تردید در مورد این واقعیت که گزینه مشخص شده تعیین می کند که چگونه بسیاری از پردازنده ها می توانند از SQL Server هنگام سرویس دادن چندین اتصال (یا کاربران) استفاده کنند - این خیلی نیست! اگر SQL Server دسترسی به چهار پردازنده غیر فعال داشته باشد، آن را برای استفاده از تمام چهار پردازنده پیکربندی شده است، از هر چهار پردازنده استفاده خواهد کرد، صرف نظر از حداکثر درجه موازی.
پس این گزینه چیست؟ این گزینه حداکثر تعداد پردازنده ها را تعیین می کند که SQL Server می تواند برای یک درخواست استفاده کند. اگر درخواست SQL Server باید بازگردد حجم بزرگ داده ها (بسیاری از سوابق)، گاهی اوقات منطقی است که به طور موازی، شکستن به چند درخواست کوچک، که هر کدام از آنها زیر مجموعه های خود را از ردیف بازگشت. بنابراین، SQL Server می تواند از پردازنده های متعدد استفاده کند، و در نتیجه، در سیستم های چند پردازنده، تعداد زیادی از سوابق کل پرس و جو می تواند به طور بالقوه سریعتر از یک سیستم تک پردازنده بازگردانده شود.
بسیاری از معیارهای که باید به حساب قبل از محرک های SQL سرور "داخل پرس و جو موازی" (شکستن یک درخواست برای چند جریان) گرفته شده است وجود دارد، و هیچ نقطه ای در جزئیات اینجا وجود دارد. شما می توانید آنها را در بول پیدا کنید، جستجو برای عبارت "درجه موازی". این می گوید که تصمیم به موازی سازی بر اساس دسترسی به پردازنده حافظه و به ویژه در دسترس بودن پردازنده ها است.
بنابراین، چرا ما باید از طریق استفاده از این گزینه فکر کنیم - زیرا، آن را در مقدار پیش فرض ترک می کنیم (SQL Server خود را بر روی موازی سازی تصمیم می گیرد)، گاهی اوقات شما می توانید اثرات ناخواسته دریافت کنید. این اثرات به نظر می رسد:

    درخواست های موازی کاهش می یابد.

    زمان اعدام درخواست ها می تواند غیر قطعی باشد، و کاربران نامنظم می توانند نامنظم باشند. زمان اجرای ممکن است تغییر کند زیرا:

      درخواست ممکن است گاهی اوقات موازی باشد و گاهی اوقات نه.

      درخواست را می توان با درخواست موازی مسدود کرد اگر پردازنده ها قبل از این بارگیری شوند.

قبل از اینکه ما ادامه دهیم، نویسنده دوست دارد متوجه شود که نیازی خاصی به شیرجه رفتن به سازمان داخلی موازی وجود ندارد. اگر به این موضوع علاقه مند هستید، می توانید مقاله "پردازش پرس و جو موازی" را در کتاب ها در خط، که در آن این اطلاعات در جزئیات بیشتر تنظیم شده است، بخوانید. نویسنده معتقد است که تنها دو مورد مهم وجود دارد که باید در مورد سازمان داخلی همبستگی بدانید:

    درخواست های موازی می تواند موضوعات بیشتری را نسبت به مشخص شده در گزینه "حداکثر درجه موازی" مشخص کند. DOP 4 می تواند دوازده موضوع را تولید کند، چهار مورد برای درخواست و جریان های اضافی مورد استفاده برای مرتب سازی، جریان، واحدها و مجامع و غیره

    موازی سازی درخواست ها می تواند مخرب های مختلف را تحریک کند تا با نوع انتظار CXPacket یا 0x0200 منتظر بماند. این می تواند مورد استفاده قرار گیرد برای پیدا کردن آن spids که در حالت آماده به کار در هنگام عملیات موازی، و در sysprocesses waittype: cxpacket. برای تسهیل این کار، نویسنده پیشنهاد می دهد که از روش ذخیره شده در وبلاگ خود استفاده کنید: track_waitstats.

و به همین ترتیب "درخواست را می توان در صورت تلفیقی" چرا؟

    اگر سیستم بسیار ضعیف باشد پهنای باند زیرسیستم های دیسک، پس از تجزیه و تحلیل درخواست، تجزیه آن می تواند طولانی تر از بدون موازی انجام شود.

    بلوک های داده های احتمالی یا مسدود کردن محدوده داده ها برای پردازنده تولید شده توسط یکی دیگر از موارد استفاده شده به صورت موازی و راه اندازی فرآیند بعد و غیره

    اگر هیچ شاخصی برای پیش فرض وجود نداشته باشد، که منجر به اسکن جدول می شود. عملیات موازی در درخواست ممکن است این واقعیت را پنهان کند که درخواست با یک طرح اجباری سازگار و با شاخص صحیح بسیار سریعتر خواهد شد.

از همه این ها به دنبال توصیه برای بررسی اعدام پرس و جو بدون همبستگی (Dop \u003d 1)، این به شناسایی مشکلات احتمالی کمک می کند.
اثرات فوق مرتبط با همبستگی، خودشان باید به شما بیاورند که مکانیک داخلی موازی سازی درخواست ها برای استفاده در برنامه های OLTP مناسب نیست. اینها چنین برنامه هایی هستند که تغییر در زمان اجرا می تواند کاربران را تحریک کند و برای اینکه سرور به طور همزمان به طور همزمان در خدمت بسیاری از کاربران، بعید به نظر می رسد طرح اجرای موازی به دلیل این برنامه های کاربردی پروفیل کار پردازشگر، بعید است.
بنابراین، اگر شما قصد استفاده از موازی شدن هستید، به احتمال زیاد مورد نیاز است، برای وظایف استخراج داده ها (انبار داده ها)، پشتیبانی از تصمیم گیری یا سیستم های گزارشگری، که در آن درخواست های زیادی وجود ندارد، اما آنها سخت و اعدام هستند یک سرور قدرتمند با حجم زیادی از حافظه عملیاتی.
اگر تصمیم به استفاده از موازی شدن دارید، چه مقدار باید برای DOP نصب شود؟ تمرین خوب برای این مکانیسم این است که اگر شما 8 پردازنده دارید، سپس DOP \u003d 4 را نصب کنید، و این با درجه بالایی از احتمال، نصب مطلوب خواهد بود. با این حال، هیچ تضمینی وجود ندارد که کار کند. تنها راه برای اطمینان از این است که برای آزمایش مقادیر مختلف برای DOP. علاوه بر این، نویسنده می خواست خود را براساس مشاهدات تجربی شورا ارائه دهد، هرگز این شماره را بیش از نیمی از تعداد پردازنده هایی که در انبار موجود است، تنظیم نکنید. اگر نویسنده دارای پردازنده های کمتر از شش بود، آن را در 1 تنظیم کرد، که به سادگی موازی سازی را ممنوع می کند. او می تواند یک استثنا را ایجاد کند اگر یک پایگاه داده ای داشته باشد که از فرآیند تنها یک کاربر (برخی از فناوری های استخراج داده ها یا وظایف گزارشگری) را پشتیبانی می کند، در این مورد، به منظور استثنا، امکان نصب DOP را در 0 (مقدار پیش فرض) نصب کنید اجازه می دهد SQL Server تصمیم بگیرد که نیاز به پرس و جو را انجام دهد.
قبل از تکمیل مقاله، نویسنده می خواست به شما در مورد این واقعیت که ایجاد موازی از شاخص ها بستگی به تعداد نصب شده برای DOP را به شما هشدار می دهد. این به این معنی است که شما ممکن است بخواهید آن را در زمان ایجاد یا دوباره ایجاد شاخص ها برای افزایش عملکرد این عملیات تغییر دهید، و البته، می توانید از پرس و جو MaxDop Hint استفاده کنید، که به شما اجازه می دهد تا مقدار تعیین شده را نادیده بگیرید پیکربندی و می تواند در ساعت حداقل بار استفاده می شود.
در نهایت، درخواست شما می تواند زمانی که به علت خطاها مواجه می شود، کاهش می یابد، بنابراین مطمئن شوید که آخرین بسته سرویس بر روی سرور شما نصب شده است.

ایجاد proc track_waitstats (num_samples int \u003d 10 ، @ deaillnum int \u003d 1 @ DELAYTYPE NVARCHAR ( 10 ) \u003d "دقیقه") AS - T. Davidson - این روش ذخیره شده ارائه شده است \u003d به عنوان \u003d بدون هیچ ضمانت، - و هیچ حقوقی ندارد - استفاده از نمونه های اسکریپت شامل موارد زیر است - مشخص شده در http://www.microsoft.com/info/cpyright.htm - num_samples تعداد دفعاتی است که برای ضبط صبر ها، - پیش فرض 10 بار است فاصله تاخیر پیش فرض 1 دقیقه است - تاخیر در فاصله زمانی تاخیر است. DELAYTYPE مشخص می کند که آیا. - فاصله تاخیر چند دقیقه یا ثانیه است - ایجاد جدول WAITSTATS اگر آن وجود ندارد، در غیر این صورت کوتاه است در صورتی که وجود نداشته باشد، NoCount را تنظیم کنید (انتخاب کنید 1 از sysobjects که در آن نام \u003d "watstats") ایجاد watstats جدول (varchar ( 80 )، درخواست عددی ( 20 ,1 )، عددی ( 20 ,1 )، عددی ( 20 ,1 )، در حال حاضر DateTime به طور پیش فرض GetDate ()) else truncate table watstats dbcc sqlperf (Watstats، Clear) - پاک کردن صبر کنید 8 )، @ dt varchar ( 3 )، @ در حال حاضر DateTime، @ Totalwait عددی ( 20 ,1 ) @ EndTime DateTime، @ Begintime DateTime، @ HR int، @ min int، @ SEC INT را انتخاب کنید 1 dt \u003d case lower (delaytype) را انتخاب کنید زمانی که "دقیقه" سپس "M" هنگامی که "دقیقه" و سپس "m" هنگامی که "min" سپس "m" هنگامی که "mm" سپس "m" پس از "m" هنگامی که "m" پس از آن "m" سپس "m" هنگامی که "M" و سپس "M" وقتی که "ثانیه" و سپس "S" وقتی که "دوم" و سپس "S" وقتی که "SEC" و سپس "S" وقتی که "اس اس" و سپس "S" وقتی که "S" و سپس "S" دیگری @ DELAYTYPE پایان اگر dt not in ("s"، "m") شروع به چاپ "لطفا تایپ تاخیر را به E.g. ثانیه یا دقیقه" پایان بازگشت اگر dt \u003d "S" شروع را انتخاب کنید sec \u003d @ deaillnum٪ 60 selectmin \u003d cast ((delaynum / 60 ) به عنوان int) select reh \u003d cast ((min / 60 ) به عنوان int) selectmin \u003d @ min٪ 60 پایان اگر dt \u003d "m" شروع به انتخاب sec \u003d 0 min \u003d @ deaillnum٪ را انتخاب کنید 60 reh \u003d cast ((delaynum / 60 ) به عنوان int) پایان را انتخاب کنید delay \u003d راست ("0" + تبدیل (varchar (varchar) 2 )، @ hr) 2 2 )، @ min) 2 ) + ":" + + راست ("0" + تبدیل (varchar ( 2 )، @ sec) 2 ) اگر rehr\u003e 23 یا min\u003e 59 یا sec\u003e 59 شروع را انتخاب کنید "HH: MM: SS تاخیر زمان نمی تواند\u003e 23:59:59" گزینه "تاخیر و نوع:" را انتخاب کنید + Convert (Varchar ( 10 )، @ Deachnum) + "،" + delaytype + "تبدیل به" @ delay بازگشت پایان در حالی که (I<= @num_samples) begin insert into waitstats (, requests, ,) exec ("dbcc sqlperf(waitstats)" ) select @i = @i + 1 Waitfor Untalldelay End --- ایجاد صلاحیت های صوری Execute Get_waitStats --//--//--//--//--//--//--//--//--//-//--//--//--//--//--//--//--//--/ ایجاد proc get_waitstats به عنوان - این روش ذخیره شده ارائه شده است \u003d به عنوان \u003d بدون هیچ ضمانت، و - حق ندارد - استفاده از نمونه های اسکریپت شامل شرایط مشخص شده است - در http://www.microsoft.com/info/cpyright.htm. -- - این PROC ایجاد خواهد شد گزارش Listing Listing Type - درصد - هنگامی که track_waitstats اجرا می شود اجرا می شود تنظیم NoCount در declareNow DateTime، @ Totalwait عددی ( 20 ,1 )، @ endtime dateTime، @ Begintime DateTime، @ HR int، @ min int، @ sec int select @ now \u003d max (now)، @ begintime \u003d min (در حال حاضر)، @ endtime \u003d max (در حال حاضر) از watstats که در آن \u003d " جمع " --- تفریق صبر، خواب، و resource_queue از مجموع totalwait \u003d sum () + را انتخاب کنید 1 از انتظار WAITSTATS که در آن نیست ("Waitfor"، "Sleep"، "Resource_Queue"، "Total"، "*** Total ***") و اکنون \u003d now - قرار دادن مجموع تنظیم شده، رتبه توسط درصد نزولی WaitStats را حذف کنید که \u003d "*** total ***" و در حال حاضر \u003d now وارد Watertats انتخاب "*** total ***"، 0 ، @ TotalWait، @ TotalWait، @ Now Select،٪ \u003d بازیگران ( 100 * / @ Totalwait به عنوان عددی ( 20 ,1 )) از Watstats که در آن نیست ("Waturfor"، "Sleep"، "Resource_Queue"، "Total") و Now \u003d Now سفارش توسط درصد DESC

در این پست، ما فقط در مورد MS SQL Server صحبت خواهیم کرد. اگر شما قصد دارید "سعی کنید شادی" را برای استفاده از 1C با اوراکل، DB2، postrgre به شما این اطلاعات بی فایده خواهد بود. اما شما باید درک کنید که در 1C عمدتا کارشناسان در MS SQL Server وجود دارد. کارشناسان DB2 به نظر می رسد تلاش های IBM. شما می توانید به مدت طولانی خوب یا بد بحث کنید، این DBMS مهم است، یکی، "صاف" 1C بیشتر با MS SQL Server کار می کند. با توجه به آخرین پیام ها با "جلو" کار "جبهه" بیشتر یا کمتر کار مناسب با DB2. اگر چه من شخصا تجربه تنظیم 1C را داشتم تا با DB2 بیشتر در نسخه 8.1 کار کنم - همه چیز به نوعی نبود. در هر صورت، انتخاب یک DBM دیگر باید به وضوح منطقی باشد - یا گزینه هایی که در MS SQL نیستند (خوشه ای با تعادل بار، شبکه، شبکه، و غیره)، یا امور مالی (اوراکل قبلا خریداری شده) یا یک پلت فرم (همه در لینوکس) .

بنابراین، به منظور آنچه شما باید با MS SQL Server انجام دهید:

1) حداقل و حداکثر مقدار حافظه را پیکربندی کنید. حداقل نیمی از حافظه سیستم است. حداکثر - سیستم حافظه بدون 2 گیگابایت. این از طریق استودیو مدیریت انجام می شود - در خواص سرور:

2) اگر اولویت در برگه پردازنده نصب نشده باشد - شما باید نصب کنید

3) حداکثر درجه همبستگی در 1.

4) شامل عامل SQL Server، سفارشی کردن ایمیل پایگاه داده - هیچ چیز دشوار وجود دارد، من جزئیات را توصیف نمی کنم.

5) سفارشی کردن برنامه های خدمات:
عمومی:
الف) به روز رسانی آمار - هر 2 ساعت
ب) DBCC Freepoccache - هر 2 ساعت
برای هر پایگاه داده:
الف) پشتیبان کامل
ب) پشتیبان گیری تفاوت
ج) defragmentation شاخص ها - هر روز
د) شاخص های Perestroika - در شب در تعطیلات آخر هفته
الف) بررسی یکپارچگی پایه - یک بار در ماه در شب در آخر هفته

6) من توصیه می کنم مدل بازیابی را برای هر پایگاه داده (در خواص) به عنوان ساده نصب کنید. اگر شما یک سیستم 24/7 ندارید و کمتر از 1000 کاربر در پایه وجود ندارد، خوشه تحمل خطا وجود ندارد و شما SLA را امضا نکردید که در آن ما در مورد خروج هر تجهیزات برای بازگرداندن داده ها فرض می کنیم به دوم (و نه از آخرین نسخه پشتیبان) این توصیه منطقی خواهد بود. در غیر این صورت، شما به زودی به زودی به مدت طولانی و به طور متضاد منعکس کننده جایی که به زایمان به زایمان متولد شده است

7) پایگاه داده Tempdb را از پایگاه های داده های معمولی به دیسک دیگری حذف کنید - حتی اگر شما باید آرایه RAID را مجددا تنظیم کنید و عملکرد آن را کاهش دهید. در غیر این صورت، 1 کاربر قادر خواهد بود تا کار هر کس دیگری را فلج کند. اگر شما یک شتاب سخت افزاری به جای یک هارد دیسک دارید، البته شما نمیتوانید Tempdb را جدا کنید، اما تنها در صورتی که وجود داشته باشد

8) هر وسیله نظارت را تنظیم کنید - به عنوان مثال، من Spotlight http://www.quest.com/spotlight-on-sql-server-enterprise/ را دوست دارم

9) خودتان را با مایکروسافت بهترین تمرین Analizer بررسی کنید - http://www.microsoft.com/download/en/details.aspx؟id\u003d15289 - یک ابزار فوق العاده است که نه تنها با تنظیمات، بلکه همچنین با حل بسیاری از مشکلات کمک می کند.

در حال حاضر به طور خلاصه برای آنچه ما انجام این همه این:

1) حافظه. حداقل مقدار به سادگی شما را از "Glitches" صرفه جویی می کند زمانی که SQL Server برای برخی از دلایل شناخته شده دیگر از تمام حافظه های موجود برای آن استفاده نمی کند. باید همه چیز را بخور حداکثر مقدار شما را از مبادله صرفه جویی خواهد کرد در صورتی که بهینه ساز SQL سرور بهینه ساز تصمیم گیری می کند که هنوز به او آسیب می رساند ....

3) یک نقطه بسیار مهم - IMMO باید در 1 در تمام سیستم های تراکنش قرار گیرد. اولا، این مانع از بخشی از قفل های بین فرایندهای مختلف تلاش برای اجرای 1 درخواست می شود، به ترتیب از ما از برخی از خطاهای "عجیب" محافظت می کند. دوم ... 1 "کشتن" درخواست می تواند تمام منابع سرور را بیرون بکشد، که در رابطه با بقیه کاربران سیستم تا حدودی درست نیست. پارامتر تعیین می کند که آیا درخواست 1 می تواند به عنوان بسیاری از هسته های پردازنده پردازش شود.

5) درباره آمار و تمیز کردن حافظه پنهان - این "در یک جلسه" است و در اینجا ما اغلب در مورد Reyndexation را فراموش می کنیم. در همین حال، این روش بسیار مهم است، به خصوص با افزایش حجم پایه، اهمیت آن افزایش می یابد. گاهی اوقات تا 60٪ از عملکرد در تقسیم بندی شاخص از دست می رود.

7) اگر شتاب دهنده سخت افزاری یا به سادگی 2 دیسک با سرعت های دسترسی متفاوت وجود داشته باشد، من به طور مداوم در مورد برجسته کردن گروه های فایل در پایگاه های داده فکر می کنم و جداول جداول فردی را به آرایه های مختلف دیسک، با زمان دسترسی مختلف تقسیم می کنم. پس از همه، شما موافقت می کنید، ph "کالا در انبارها" و کتاب مرجع "ذخیره سازی اطلاعات اضافی" 2 از هدف مورد نیاز برای ذخیره سازی آن ریشه دارد. لازم نیست همه فایل ها و تصاویر را در آرایه سریع در پایگاه داده ذخیره کنید - شما می توانید آن را به صورت جداگانه انتخاب کنید، نه به سرعت، اما جایی که مکان های بسیاری وجود دارد (و از یک دسته از فایل ها برای دانلود، توسط مسیر).