Optimizing TempDB Performance

Optimizing TempDB Performance

نوشته شده توسط: قاسم گل میری
۱۵ آذر ۱۳۹۴
زمان مطالعه: 6 دقیقه
۰
(۰)

مقدمه

اندازه و محل قرار فیزیکی از tempdb ده می تواند عملکرد سیستم  یا به اصطلاح performance سیستم تاثیر داشته باشد.

به عنوان مثال، اگر اندازه Tempdb  بیش از حد کوچک باشد بخشی از بار سیستم پردازش ممکن است صرف autogrowing شود که هربار درخواست فضا زمان لازم دارد.
فایل های TempDB را به چند فایل مساوی تقسیم کنید تا از حد اکثز پهنای باند storage خود استفاده کنید.
 
توصیه میشود به تعداد هسته های cpu تا ۴ تا فایل بسازید اگر بالای ۸ تا هسته داشتید تعداد فایل برابر تعداد هسته ها تقسیم بر ۲ باشد.
در  زمان نصب SQL Server 2016 شما می توانید تعداد فایل های  Tempdb را مشخص کنید.
به طور پیش فرض مقدار آن  ۸ است یا به اندازه تعداد هسته های پردازنده شما می باشد.که می تواند تا تعداد هسته های پردازنده افزایش داد.
داشتن چندین فایل می تواند کمک کند که سیستم منتظر IO نماند و نیاز به آزاد کردن Buffer Pool بزرگ  و حجیم نباشد الگوهای IO اساسا تصادفی منجر شود که استخر بافر نیاز به آزاد کردن فضای طریق lazywriter (ایست های بازرسی از Tempdb نمی صفحات داده خیط و پیت کردن) برای سیستم های با استخر بافر بسیار بزرگ نیست اما * تعداد زیادی از داده ها * از Tempdb. اگر زیر سیستم I / O می تواند بار در سراسر چندین فایل رسیدگی نمی کند، آن را شروع به کم کردن سرعت.
recovery mode باید در حالت simple باشد. 
با توجه به اینکه اطلاعات موجود در TempDB مهم نیستند دلیل ندارد که حالت Full قرار داده شود و Log را بی مورد اشغال کند .
بهتر است فایل ها بر روی سریعترین دیسک باشد ترجیحا raid صفر .
در TempDB سرعت برای ما مهم است و خطر از دست رفتن دیتا مارو تهدید نمیکند چون دیتای با اهمیتی در این دیتابیس وجود ندارد بنابر این بهتر است فایل ها روی دیسکی که بصورت Raid صفر بسته شده اند  ایجاد شوند.
tempDB با شرینک خالی نمیشود و تنها راه خالی کردن آن restart کردن SQL Server است.
SELECT     name AS FileName,
size*1.0/128 AS FileSizeinMB,CASE max_size
WHEN 0 THEN 'Autogrowth is off.'
WHEN -1 THEN 'Autogrowth is on.'
ELSE 'Log file will grow to a maximum size of 2 TB.'
END,
growth AS 'GrowthValue',
'GrowthIncrement' =
CASE
WHEN growth = 0 THEN 'Size is fixed and will not grow.'
WHEN growth > 0 AND is_percent_growth = 0
THEN 'Growth value is in 8-KB pages.'
ELSE 'Growth value is a percentage.'
END
;FROM tempdb.sys.database_files
GO

چه رتبه ای می‌دهید؟

میانگین ۰ / ۵. از مجموع ۰

اولین نفر باش

title sign
معرفی نویسنده
قاسم گل میری
مقالات
1 مقاله توسط این نویسنده
محصولات
0 دوره توسط این نویسنده
قاسم گل میری
پروفایل نویسنده
title sign
معرفی محصول
title sign
دیدگاه کاربران

    •     باسلام

      ممنون از زحمات شما استاد عزیز
    • سلام
      جناب مهندس مقالتون بسیار خوب بود

    • سلام قاسم جان

      متشکرم از مقاله شما
      در جهت تکمیل یکی از مهمترین دلایل افزایش دیتا فایل های مربوط به TempDB کاهش مشکل Latch Contention می باشد. این مشکل به ازای Allocation Pageها در دیتا فایل رخ می دهد که ما با افزایش دیتا فایل به نسبت CPU Coreها می توانیم این مشکل را به حداقل برسانیم.
      همچنین در نظر داشته باشید که زمانی که SQL Server را به صورت Failover Cluster نصب می کنید می توانیم این دیتا بیس را به جای SAN در Local Storage سرور ها روی دیسک های پرسرعت مانند SSD ذخیره کنیم.
      موفق باشید
  • 1
  • 2
هر روز یک ایمیل، هر روز یک درس
آموزش SQL Server بصورت رایگان
همین حالا فرم زیر را تکمیل کنید
دانلود رایگان جلسه اول
نیک آموز علاوه بر آموزش، پروژه‌های بزرگ در حوزه هوش تجاری و دیتا انجام می‌دهد.
close-link
جشنواره عیدآموز نیک آموز، سال جدید رو با قدرت شروع کن
مشاهده تخفیف ها
close-image