ورود ثبت نام

ورود به حساب کاربری

نام کاربری *
رمز ورود *

ایجاد حساب کاربری

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

دوره آموزشی Query Performance Tuning

performance-tuning-course

امروزه یکی از بزرگترین دغدغه های موجود در حوزه دیتابیس، کاهش کارایی و سرعت عملیات، همزمان با افزایش حجم اطلاعات است. از آن جا که یکی از عوامل مهم در موفقیت هر برنامه نرم افزاری، رضایتمندی کاربران آن برنامه از سرعت انجام عملیات روزمره مانند: خواندن اطلاعات، درج، حذف، ویرایش است اهمیت این موضوع را دوچندان می کند. شاید به عنوان اولین راه کار جهت رفع مشکل سرعت اجرای برنامه ها، افزایش منابع سرور مانند Ram، Cpu و ... با پرداخت هزینه های گزاف پیشنهاد شود اما تجارب عملی نشان داده است که این راه کار مقطعی بوده و بعد از مدت زمان کوتاهی مجدداً با مشکلات قبلی مواجه خواهید شد!

از مهمترین عوامل کاهش سرعت انجام عملیات بر روی حجم زیاد اطلاعات می توان به سه مورد زیر اشاره کرد: 

  1. عدم یادگیری صحیح زبان T-Sql
  2. توجه نداشتن به نکات بهینه سازی در زمان طراحی دیتابیس و کوئری
  3. استراتژی ایندکس گذاری ضعیف

سه محوریت اصلی در آموزش Query Performance Tuning

1. آموزش مفاهیم پایه ای و ضروری جهت بهینه سازی کارایی:

یک متخصص Performance Tuning الزاماً بایستی با برخی مباحث Internal در SQL SERVER آشنایی داشته باشد. به عنوان مثال تا زمانی که شما با مفهوم page، ساختار B-Tree و معماری ایندکس ها در SQL SERVER آشنایی نداشته باشید. مباحثی مانند ایندکس، انواع آن، تأثیر ایندکس بر جستجو، ایندکس های بدون کاربرد یا تکراری، عوامل کاهش کارایی ایندکس و ... را مسلط نخواهید شد اگرچه صدها ایندکس ایجاد کرده باشید!

جهت بهینه سازی و رفع مشکلات کارایی یک دیتابیس، باید سه مرحله بررسی، کشف علت و یافتن راه حل مشکل را طی کنیم. در ابتدا با استفاده از ابزارهایی مانند Execution Plan مراحل اجرای کوئری را بررسی می کنیم. با تحلیل و بررسی عملگرهای موجود در پلن اجرایی، دلیل یا دلایل ایجاد مشکل کارایی را کشف می کنیم و در مرحله آخر نیز راه حل متناسب با مشکل ایجاد شده را اعمال می کنیم. همگی این مراحل نیازمند آشنایی یک متخصص با مباحث Internal در SQL SERVER  است.

 

2. بررسی مشکلات رایج کارایی و ارائه برترین راه حل ها برای هر یک:

بدون شک داشتن تجربه و آشنایی با انواع مشکلات کارایی و راه حل آن ها تأثیر زیادی در کیفیت کار و مهارت یک متخصص Performance Tuning خواهد داشت. به عنوان مثال اینکه شما قادر باشید با مشاهده یک Execution Plan و توجه به یک سری علائم و مقادیر، به مشکل کارایی یک کوئری پی ببرید نیازمند مطالعه و تجارب عملی بسیار زیادی است. اینکه بتوانیم مشکلات کارایی مرتبط با بهینه نبودن طراحی کوئری را از مشکلات طراحی دیتابیس و جداول و یا حتی تنظیمات  سطح سرور تفکیک کنیم.

در طول دوره آموزشی Performance Tuning انواع سناریوهای مشکل کارایی(کوئری، طراحی، تنظیمات) شبیه سازی و مرحله به مرحله(بررسی، تشخیص، راه حل) بهینه سازی را انجام می دهیم.

 

3. آموزش تکنیک ها و ابزارهای بهینه سازی کارایی در سطح سرور، دیتابیس، جدول و به ویژه کوئری ها:

واقعیتی انکارناپذیر در موفقیت یک متخصص Performance Tuning استفاده از ابزار کمکی مناسب است. به عبارتی دیگر، برخورداری از سطح مناسب دانش و مهارت، شرط لازم برای موفقیت و استفاده از ابزار کمکی مناسب، شرط کافی برای این مورد به شمار می رود. همانطور که می دانید در SQL SERVER امکانات زیادی از Execution Plan  و Profiler گرفته تا DMV, DBCC  و DMF جهت استخراج انواع اطلاعات مرتبط با کارایی وجود دارند اما تجربه نشان داده است که استفاده از ابزارهای طراحی شده توسط شرکت های Third Party مانند Redgate، Appex،  Idera  و ... از نظر سرعت و بهره مندی از ابزارهای ویژوال چون نمودارها و گزارشات کاربردی فراوان، بسیار مناسب تر از ابزارهای داخلی SQL SERVER  هستند. اگرچه این ابزارهای کمکی نیز در عمل از امکانات داخلی SQL SERVER استفاده می کنند.

در طول دوره آموزشی Performance Tuning، متناسب با موضوع بهینه سازی، ابزارهای کمکی معرفی خواهند شد و در پایان دوره از یک جعبه ابزار حرفه ای  جهت شناسایی مشکلات کارایی برخوردار خواهید بود. لازم به ذکر است که اسکریپت های آماده و تست شده که توسط افرادی چون paul randa ,kimberly ، kendra little، Holger Schmeling  و... تهیه شده اند را پس از بررسی مختصر و آشنایی با کاربرد آن ها به این جعبه ابزار اضافه خواهیم کرد.

در پایان این دوره آموزشی، متناسب با مهارت کسب شده و از طریق آزمون، از دانشجویان دعوت به کار صورت می گیرد. 


آموزش Query Performance Tuning - سرفصل ها

آموزش ایندکس در SQLSERVER  چیست؟

what-is-index

                                                                                  

آشنایی با مفهوم ایندکس

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

معرفی انواع ایندکس

آموزش Page در  SQLSERVER چیست؟

what-is-page

آشنایی با مفهوم PAGE      

معرفی انواع PAGE در SQL

بررسی ساختار داخلی یک PAGE

نحوه ذخیره داده ها در PAGE

مشاهده محتویات یک PAGE

محاسبه فضای اشغال شده و آزاد

    آموزش B-Tree در  SQLSERVER چیست؟

what-is-b-tree

آشنایی با B-Tree

مزایای استفاده از B-Tree

شبیه ساز B-Tree

معماری  B-Tree همراه با مثال

 

 

          آموزش معماری ایندکس کلاستر و نان کلاستر در SQLSERVER

clustered-and-non-clustered-architecture

مروری بر ایندکس چیست

معماری Clustered Index

ترتیب فیزیکی و منطقی رکوردها

معماری Non Clustered Index

جستجو در ایندکس ها

جداول Heap  و  Clustered

معماری جدول دارای چند ایندکس

 

 

آموزش   Execution Plan چیست؟

what-is-execution-plan

آشنایی با Execution Plan، کاربردها و انواع 

مراحل اجرای یک کوئری در  SQL(زمان ایجاد Execution Plan)        

معرفی اجزای یک Execution Plan

نحوه خواندن و تحلیل Execution Plan

تکنیک های کشف مشکل با استفاده ازExecution Plan

معرفی انواع فرمت های نمایش 

خودکارسازی ذخیره Execution Plan

معرفی ابزار (Devart – Sql Sentry)

آموزش عملیات  Seek وScan  در SQLSERVER

Scan-And-Seek-Operation

معرفی عملیات Seek وScan 

آشنایی با Table Scan

آشنایی با  Logical/Physical Read

آشنایی با Index Scan

آشنایی با Index Seek

انجام عملیات در ایندکس کلاستر و نان کلاستر

انجام عملیات در Clustered/Heap Table

آموزش عملیات Lookup  درSQLSERVER   و نحوه مدیریت آن

what-is-lookup

آشنایی بامفهوم Bookmark Lookup

معرفی انواع  Lookup و مقایسه کارایی آن ها

روش های حذف Lookup در اجرای کوئری

مقایسه کارایی(Column  Key/Nonkey(Include

oMissing Index، کاربرد و نحوه ایجاد آن

دلایل عدم استفاده از Select * در کوئری

 

عملیات Join  درSQLSERVER

join

آشنایی بامفهوم Join – معرفی Tools

آشنایی کامل با Nested Loops Join

آشنایی کامل با Sort Merge Join

آشنایی کامل با Hash Match Join

محدودیت الگوریتم های جوین در انجام جوین های منطقی

مقایسه کارایی الگوریتم های جوین

STATISTICS درSQLSERVER   چیست

Statistics

آشنایی باStatistics و اصطلاحات مربوطه

کاربرد Statistics و تخمین رکوردهای بازگشتی

انواع Statistics و نحوه ایجاد هر یک

آشنایی با Filtered Index

معرفی قسمت های مختلف در Statistics

تنظیمات Statistics در سطح دیتابیس و جدول

 

 

STATISTICS و افزایش سرعت اجرای کوئری در SQLSERVER

Statistics-performance-tuning

تفاوت تخمین رکوردها در نسخه های مختلف SQLSERVER

Missing Statistics  

متغیر محلی و Statistics

Parameter Sniffing

تأثیر طراحی صحیح کوئری در تخمین صحیح

دقیق نبودن Statistics و راه حل آن

ستون های به هم مرتبط در شرط های کوئری

مشاهده Statisticsهای استفاده شده در کامپایل یک کوئری

کشف  Statisticsهای تکراری وبدون کاربرد

استخراج Statisticsهای کم دقت و ایجاد مجدد آن ها با Sampled مناسب

تشخیص زمان بروزرسانی Statistics و تأثیر انتخاب Sample بر کارایی

 

ترتیب اجرای دستورات یک کوئری در SQLSERVER

 Statement-execution-order

مروری بر مدل رابطه ای و SQL

مفهوم اجرای منطقی و فیزیکی دستورات کوئری

ترتیب نوشتاری و ترتیب منطقی اجرای کوئری

کنترل ترتیب اجرای منطقی و فیزیکی جوین

ترتیب منطقی اجرای عملگر PIVOT

آموزش ایندکس گذاری صحیح در SQLSERVER

index

دلیل اهمیت ایندکس ها در SQLSERVER

کاربرد ایندکس ها در SQLSERVER

معیارهای انتخاب کلید ایندکس کلاستر

تأثیر انتخاب صحیح  کلید ایندکس در حجم دیتابیس

مفهوم Page Split، دلیل رخ دادن آن و تأثیر آن بر کارایی

تأثیر وجود مقادیر تکراری در کلید ایندکس بر کارایی

تفاوت کاربرد کلید اصلی وکلید ایندکس کلاستر

 GUID و IDENTITY به عنوان کلید ایندکس - معرفی چند کلید ایندکس نمونه

مزایا و معایب ایندکس نان کلاستر

تعداد مناسب ایندکس ها در یک جدول

مراحل گام به گام ایندکس گذاری یک جدول

ایندکس گذاری صحیح و افزایش کارایی عملیات در SQLSERVER

index-performance-tuning

ایندکس گذاری کلید خارجی

ایندکس گذاری بر اساس توابع تجمعی، گروهبندی و مرتب سازی

تأثیر صعودی یا نزولی بودن (Asc - Desc) فیلدهای ایندکس بر کارایی

اهمیت ترتیب فیلدها در ایندکس مرکب (Multi-Column)

ایندکس کلاستر سریعتراست یا ایندکس نان کلاستر

بررسی کارایی جدول Heap , Clustered

بررسی عملیات جدول Heap

Forwarding Pointer در جدول Heap

مفهوم Tipping Point و تأثیر آن در استفاده یا عدم استفاده از یک ایندکس

 

کشف ایندکس های مفقودی و تست کارایی ایندکس قبل از ایجاد آن

missing-index

فرآیند بهینه سازی ایندکس ها در Sqlserver

روش های استخراج کوئری های نیازمند ایجاد ایندکس جهت بهبود کارایی

استخراج لیست ایندکس های مفقودی با استفاده از DMV

نحوه انتخاب مناسب ترین ایندکس از بین ایندکس های پیشنهادی

استخراج کوئری های دارای عملیات پرهزینه ازplan cache

ادغام نتایج DMV و plan cache جهت انتخاب بهترین ایندکس

معرفی Hypothetical Index  و کاربرد آن در تست کارایی ایندکس

مهمترین عوامل کاهش کارایی ایندکس ها و مدیریت آن ها در SQLSERVER

index-performance-killer

استخراج ایندکس های بدون کاربرد و ملاحظات حذف آن ها

استخراج ایندکس های تکراری

تشخیص ایندکس های دارای همپوشانی و ادغام آن ها

معرفی سه Stored Procedure جهت مانیتور کارایی ایندکس ها

Page Split و Fragmentation

روش های رفع مشکل Fragmentation

معرفی ابزار (Devart –Redgate)

نکات مربوط به Rebuild و Reorganize ایندکس ها

 

مهمترین نکات افزایش کارایی کوئری در SQLSERVER

query-performance-notice

دستور SELECT در SQLSERVER

تأثیر آرگومان های جستجو در کارایی کوئری

تکنیک Optimize-For-Unknown

تأثیر ستون های شرط کوئری بر کارایی

مقایسه کارایی توابع موجود در شرط کوئری

معرفی توابع Sargable و Non-sargable

بررسی عملیات   Seek Predicate و Predicate

(Table Value Parameter (TVP و درج دسته ای

آشنایی با Window Function و نکات مرتبط با کارایی این توابع

طراحی SP بهینه جهت فرم های جستجو دارای تعداد پارامتر زیاد

مهمترین نکات افزایش کارایی در SQLSERVER

 sql-server-performance-tuning-nitice.

جداول موقت در Sqlserver

تنظیمات Tempdb و رفع مشکل  Contention

ایجاد فایل های لاگ و دیتا در یک دیتابیس

File group و افزایش کارایی دیتابیس

فعال سازی Instant File Initialization

شبیه سازی محیط عملیاتی

معرفی ابزار جهت مانیتور کارایی کوئری ها و سرور (Apex - Idera)

در پایان این دوره آموزشی، متناسب با مهارت کسب شده و از طریق آزمون، از دانشجویان دعوت به کار صورت می گیرد. 

نام دورهQuery Performance Tuning

پیش نیاز دورهآشنایی با طراحی دیتابیس و زبان T-Sql(طراحی کوئری) 

ظرفیت کلاس: 10 نفر، اولویت با افرادی است که زودتر ثبت نام کنند.

شروع دوره: نیمه دوم آذرماه 98

محل دوره: اصفهان، خیابان آتشگاه، چهار راه قدس، کوچه شهید جوادی، شماره 62، پلاک 1802

ساعت دورهجهت اطلاع از جزییات بیشتر با آموزشگاه تماس حاصل نمایید(ساعات تماس 15 الی 20)

تلفن  آموزشگاه:  09039970652

مدرسمحسن بندامیر

 

نوشتن دیدگاه


تصویر امنیتی
تصویر امنیتی جدید