دوره آموزشی Performance & Tuning در SQL Server2017

(دیدگاه کاربر 64)

۱,۵۰۰,۰۰۰ تومان

عنوان دوره: دوره آموزشی Performance Tuning در SQL Server 2017
پیش نیازهای دوره: دوره آموزشی کوئری‌نویسی در SQL Serve
مخاطبین: برنامه‌نویسان و مدیران بانک‌های اطلاعاتی
طول دوره: 25 جلسه 3 ساعته، جمعا 75 ساعت آموزش تصویری + 600 دقیقه تمرین اضافی کلاسی
پشتیبانی: دارای گروه تلگرامی اختصاصی است
نحوه ارائه: این دوره به صورت غیرحضوری ارائه می‌گردد.
مدیریت دوره: فرید طاهری مدیریت نیک آموز
مدرس: مسعود طاهری
مبلغ غیرحضوری: یک میلیون و پانصد هزار تومان

توضیحات

این دوره بصورت غیرحضوری ارائه می‌گردد.

 

 

 

دوره آموزشی Performance Tuning در SQL Server 2017 با سرفصلی جدید و کاملا استثنایی

 

 

 

آیا می‌دانید!؟
هر چقدر با جزئیات و ریزه کاری‌های مربوط به SQL Server آشنا شوید رفتارتان با آن عوض می‌شود و به خوبی می‌توانید از عهده مشکلات مربوط به کارایی بانک‌های اطلاعاتی برآید.

 

 

 

 

لطفا فقط نسخه سخت افزاری نپیچید!!
بیشتر وقت‌ها برای انجام پروژه‌های مختلف که مراجعه می‌کنیم، متاسفانه شاهد این هستیم که کارفرما تقریبا یک هیولا در اختیار دارد ولی بازهم سرعت بانک اطلاعاتی پایین است. وقتی سوال می‌کنیم چرا این سرور قدرتمند را خرید کرده‌اید، پاسخ میدهند برای افزایش سرعت اولین کاری که کردیم افزایش قدرت سخت افزار بود!! دوستان همیشه اشاره کردیم، سخت افزار ۴۰ درصد قضیه است و مباحث خود SQL Server و کدهای برنامه نویسی شما ۶۰ درصد قضیه، پس تا می‌توانید سمت نرم افزار را بالا ببرید و نسخه های چند صد میلیونی سخت افزاری نپیچید!

 

 

 

آمار و ارقام استخدام چه می‌گوید؟
آيا مي دانيد يکي از پولسازترين شغل ها هم اکنون در ايران بالا بردن سرعت بانک اطلاعاتي SQL Server شرکت ها و سازمان ها مي باشد؟ قبل از اينکه رقباي شما زياد شوند خود را متخصص Performance & Tuning کنيد.

 

 

 

 

 

 

 

 

 

سرفصل‌های این دوره منحصربفرد را دانلود کنید.

 

 

 

 

سرفصل‌های دوره آموزشی Performance Tuning در SQL Server

 

 

۱- آشنایی اولیه با معماری SQL Server

۱- آشنایی با مفهوم DMV و DMF در SQL Server
۲- بررسی مفهوم Database
۳- بررسی مفهوم Data File و Log File
۴- بررسی معماری Log File
۵- بررسی معماری منطقی Log File
۶- برررسی معماری فیزیکی Log File
۷- بررسی نحوه اعمال تنظیمات مناسب برای Data File و Log File
۸- بررسی تنظیمات مفید سیستم عامل برای فایل‌های بانک اطلاعاتی
۹- بررسی تنظیمات Database Instant File Initialization
۱۰- آشنایی با Buffer Pool در SQL Server
۱۱- بررسی مفهوم Checkpoint
۱۲- چه کارهایی در هنگام Checkpoint رخ می‌دهد؟
۱۳- بررسی پروتکل TDS و نحوه استفاده SQL Server از آن
۱۴- بررسی اولیه مفهوم Lock
۱۵- بررسی اولیه مفهوم Latch
۱۶- آشنایی با DMVها و DMFهای مهم و پرکابرد در این حوزه
۱۷- معرفی ابزارهایی کاربردی برای مشاهده محتوای Pageها

 

 

 

Log File و اعمال تنظیمات مناسب برای آن
همه ما می‌دانیم که بانک‌های اطلاعاتی در SQL Serverحداقل از یک Data File و یک Log File تشکیل شده است. چنانچه ما معماری ذخیره‌سازی داده در هر کدام از این فایل‌ها را بدانیم رفتارمان نسبت به این فایل‌ها عوض می‌شود.
یکی از مواردی که من همیشه در بانک‌های اطلاعاتی بزرگ تنظیمات مناسبی بر روی آن اعمال می‌کنم. Log File است. نوع دسترسی در این فایل به صورت Sequential (دسترسی ترتیبی) می‌باشد و برای افزایش کارایی بانک اطلاعاتی باید تنظیمات مناسبی بر روی آن اعمال نمود. ما در این دوره با نحوه اعمال تنظیمات مناسب برای این فایل‌ها آشنا می‌شویم

 

 

 

 

 

۲-آشنایی با Pageها و انواع آن در SQL Server

۱- بررسی مفهوم Page در Data File
۲- بررسی معماری ذخیره‌سازی داده‌ها در Page
۳- بررسی انواع Pageها و کاربرد هر کدام از آنها
۴- بررسی دقیق Allocation Page
۵- بررسی مفهوم Row-Overflow
۶- بررسی مفهوم LOB و نحوه ذخیره‌سازی آن در SQL Server
۷- بررسی تکنیک‌های استفاده مناسب از Data Typeها
۸- Select * و مشکلات آن
۹- بررسی مفهوم Extent
۱۰- معرفی انواع Extentها در SQL Server
۱۱- نحوه ویرایش رکوردها در SQL Server
۱۲- Alter کردن جداول در SQL Server

 

 

چرا باید جزئیات نحوه ذخیره سازی داده‌ها در جداول را تا به این حد یاد بگیرم؟
این سوالی بود که در یکی از کورس‌های Performance Tuning در SQL Server از من پرسیده شده بود. جوابی که من به این سوال می‌دهم این هر چقدر با جزئیات و ریزه کاری‌های مربوط به SQL Server آشنا شوید رفتارتان با آن عوض می‌شود و به خوبی می‌توانید از عهده مشکلات مربوط به کارایی بانک‌های اطلاعاتی برآید.

 

 

 

۳-بررسی File Groupها

۱- بررسی مفهوم File Group
۲- بررسی کاربردهای File Group
۳- بررسی مزایای استفاده از File Group
۴- بررسی انواع File Groupها
۵- بررسی نحوه تعریف اصولی File Groupها
۶- بررسی نحوه رشد Data Fileهای مربوط به File Group
۷- بررسی نحوه قرار دادن جداول در File Groupها
۸- بررسی نحوه قرار دادن ایندکس در یک File Group
۹- بررسی نحوه ذخیره و بازیابی BLOBها در File Groupهای جداگانه
۱۰- بررسی فایل‌گروه‌های Filestream
۱۱- بررسی نحوه استفاده از فایل گروه‌های Filestream در جهت افزایش کارایی بانک اطلاعاتی
۱۲- بررسی نحوه ایجاد و مدیریت فایل گروه‌های Filestream
۱۳- بررسی نحوه پیکربندی SQL Server برای کار با Filestream
۱۴- بررسی نحوه کار با Filestream در .NET
۱۵- بررسی جداول FileTable
۱۶- بررسی نحوه استفاده از FileTable در .NET

 

 

نحوه ارتباط دات نت با Filestream و File Table
ما در این دوره شما را با نحوه استفاده از تکنولوژی Filestream و همچنین File Table در دات نت آشنا می‌کنیم. از این سبک کد نویسی خودم به شخص در اغلب پروژه‌ها استفاده کرده‌ام و کارایی بانک اطلاعاتی را افزایش داده‌ام.

 

 

 

۴-معرفی Execution Plan و نحوه کار با آن

۱- بررسی مفهوم Logical Read و Physical Read
۲- بررسی دستور Set Statistics IO
۳- بررسی دستور Set Statistics Time
۴- بررسی ترتیب اجرای منطقی و فیزیکی دستورات SQL Server
۵- بررسی مفهوم Execution Plan و انواع آن
۶- بررسی نحوه Compare کردن Execution Planها در SQL Server
۷- بررسی نحوه ذخیره و بازیابی Execution Plan

 

 

معرفی دو ابزار حرفه‌ای برای آنالیز Execution Plan

ما در SSMS می‌توانیم Execution Planها را مشاهده و آنالیز کنیم، اما SSMS امکانات محدودی برای آنالیز Plan دارد ما در این دوره شما را با دو ابزار خیلی قوی برای آنالیز Execution Plan آشنا خواهیم کرد.

 

 

 

۵- بررسی ایندکس‌ و معماری آنها

۱- بررسی Heap Table
۲- برررسی معماری جداول Heap در SQL Server
۳- آشنایی با Forwarding Pointer در Heap Table
۴- بررسی چند سناریو کاربردی برای استفاده از Heap Table
۵- آشنایی با Clustered Index
۶- بررسی معماری Clustered Index
۷- بررسی تاثیر انتخاب درست کلید Clustered Index در کارایی بانک اطلاعاتی
۸- چگونه Where Condition مناسب جهت استفاده از Clustered Index بنویسیم؟
۹- مقایسه Heap و Clustered Index
۱۰- بررسی انتخاب کلید ایندکس به صورت ترکیبی و تاثیر آن بر کارایی بانک اطلاعاتی
۱۱- بررسی ویژگی‌های مهم و کاربردی برای انتخاب کلید ایندکس
۱۲- بررسی Non Clustered Index و معماری مربوط به آن
۱۳- بررسی مفهوم lookup هنگام استفاده از ایندکس‌های Non Clustered
۱۴- بررسی Key Lookup
۱۵- بررسی RID Lookup
۱۶- Tipping Point و مفهوم آن در SQL Server

 

 

 

 

۶- ایندکس و نکات پیشرفته مربوط به آن

۱- بررسی مفهوم Cover Index در SQL Server
۲- بررسی نحوه حذف هزینه Lookup با استفاده از Cover Index
۳- بررسی Filtered Indexها در SQL Server
۴- بررسی Sparse Column و تاثیر اعمال ایندکس بر روی آنها
۵- بررسی استفاده از GUID به عنوان کلید ایندکس و مشکلات مربوط به آن
۶- Computed Column و اعمال ایندکس بر روی آنها
۷- بررسی تاثیر عملیات Shrink بر روی ایندکس‌ها
۸- بررسی تاثیر منفی ایجاد بیش از حد ایندکس‌ها در کارایی بانک اطلاعاتی
۹- بررسی Hypothetical Index
۱۰- بررسی Optionهایی که هنگام ایجاد ایندکس باید در نظر داشت

 

 

۷-فشرده‌سازی جداول و ایندکس

۱- بررسی فشرده‌سازی هنگام استفاده از نوع داده Decimal
۲- بررسی مفهوم Data Compression در SQL Server
۳- بررسی فشرده سازی به روش Row Compression
۴- بررسی فشرده‌ سازی به روش Page Compression
۵- بررسی تاثیر فشرده‌سازی بر عملیات Select
۶- بررسی تاثیر فشرده‌سازی بر عملیات Insert,Update,Delete
۷- بررسی تاثیر فشرده‌سازی بر کارایی بانک اطلاعاتی
۸- بررسی تاثیر فشرده‌سازی بر روی Clustered Indexها
۹- برررسی تاثیر فشرده‌سازی بر روی Non Clustered Indexها
۱۰- بررسی تاثیر عملیات فشرده‌سازی بر روی کارایی عملیات تهیه و بازیابی نسخه پشتیبان

 

 

تاثیر فشرده‌سازی جدول بر کارایی بانک اطلاعاتی
در یکی از پروژه‌هایی که در آن درگیر بودم یکی از جداول بانک اطلاعاتی دارای حجم زیادی از داده بود که
با توجه به اینکه حجم Selectهای این جدول خیلی زیاد بود تصمیم گرفتیم Data Compression را بر روی این جدول راه‌اندازی کنیم. با انجام این کار حجم داده‌های موجود در ایندکس‌های این جدول کاهش پیدا کرد و این موضوع باعث شد که IO کوئری‌ها کمتر شود.
تصویر زیر نمونه‌ای از فضای یک جدول قبل از فشرده و پس از فشرده‌سازی به روش‌های مختلف را نمایش می‌دهد.

 

 

۸-Statistics و کاربرد آن در SQL Server

۱- بررسی مفهوم Statistics
۲- بررسی کاربرد Statistics در SQL Server
۳- بررسی مفهوم Query Selectivity در SQL Server
۴- بررسی تاثیر Statistics در هنگام انتخاب یک ایندکس مناسب
۵- بررسی اجزاء مربوط به Statistics (Stat Header , Density Vector , Histogram)
۶- بررسی روش‌های ایجاد Statistics در SQL Server
۷- بررسی شرایط به روز رسانی Statistics در SQL Server
۸- بررسی روش‌های به روز رسانی Statistics در SQL Server
۹- بررسی تغییرات Statistics در نسخه ۲۰۱۴ (بازنویسی روال‌های مربوط به آن توسط مایکروسافت)
۱۰- بررسی تاثیر منفی تغییرات Statistics نسخه ۲۰۱۴ بر روی بانک‌های اطلاعاتی
۱۱- بررسی مشکلات به روز نبودن Statistics
۱۲- بررسی مشکل Spill to Disk
۱۳- بررسی Filtered Statisticsها

 

 

۹-Constraintها و تاثیر آن بر کارایی بانک اطلاعاتی

۱- بررسی مفهوم Primary Key و Unique Key
۲- نحوه انتخاب صحیح Primary Key در جداول
۳- Primary Key & Unique Key و ایندکس‌های مرتبط به آنها
۴- بررسی مفهوم Check Constraint و تاثیر آن بر کارایی بانک اطلاعاتی
۵- بررسی مفهوم Foreign Key و تاثیر آن بر کارایی بانک اطلاعاتی

 

 

خیلی از دوستانی که فیلد یا فیلدهایی را به عنوان Unique Key ایجاد می‌کنند اطلاعی ندارند که Unique Key توسط یک Unique Non Clustered Index کنترل می‌شود.
چنانچه ما با این مفهوم و همچنین معماری داخلی این ایندکس آشنا باشیم می‌توانیم به خوبی از این ویژگی در پروژه‌های عملیاتی خود استفاده کنیم.

 

 

۱۰-Fragment شدن ایندکس‌ها

۱- بررسی مفهوم Fragmentation
۲- بررسی انواع Fragmentation در SQL Server
۳- بررسی تاثیر استفاده از Fillfactor و Pad_Index بر روی Fragmentation
۴- بررسی روش‌های کاهش Fragmentation ایندکس‌ها در SQL Server
۵- بررسی نحوه تنظیم اصولی Fillfactor برای ایندکس‌ها
۶- بررسی نحوه مانیتور کردن Fragmentation
۷- بررسی Rebuild کردن ایندکس‌ها و کاهش Fragmentation
۸- بررسی روش‌های مختلف Rebuild کردن ایندکس‌ها
۹- بررسی حالت‌های مختلف Rebuild کردن ایندکس‌ها به صورت آنلاین و حالت‌های مختلف آنView

 

 

۱۱-مانیتور کردن ایندکس‌ها

۱- معرفی DMVهای مربوط به مانیتور کردن ایندکس‌ها
۲- بررسی ویو مدیریتی Index Usage Stats
۳- بررسی ویو مدیریتی Index Operational Stats
۴- بررسی ویو مدیریتی Index Physical Stats
۵- پیدا کردن ایندکس‌ها تکراری و تصمیم‌گیری در خصوص وجود یا عدم وجود آن
۶- پیدا کردن ایندکس‌های بلا استفاده در SQL Server
۷- بررسی و آنالیز Missing Indexها در SQL Server

 

 

پیدا کردن ایندکس‌های بلا استفاده
یکی از کارهایی که من همیشه بر روی بانک‌های اطلاعاتی انجام می‌دهم پیدا کردن ایندکس‌های بلا استفاده بر روی سرور است. وجود ایندکس‌های اضافی بر روی سرور باعث بالا رفتن افزایش Fragmentation ایندکس، افزایش مدت زمان Blocking، افزایش احتمال وجود Deadlock و…. می‌شود. ما در SQL Server می‌توانیم ایندکس‌های بلا استفاده را با استفاده از بررسی تعدادی DMV مدیریتی بدست آوریم.

 

 

۱۲-استفاده از Full text Indexها در SQL Server

۱- بررسی مفهوم Full text Index
۲- بررسی اصطلاحات تخصصی مربوط به Full text Index در SQL Server
۳- نحوه تنظیم استفاده از Full text Index در هنگام کار با داده‌های رشته‌ای
۴- نحوه تنظیم استفاده از Full text Index در هنگام کار با LOB
۵- بررسی نحوه به روز رسانی ایندکس‌های Full text
۶- بررسی نحوه کار استفاده از Full text index در زبان فارسی
۷- بررسی نحوه استفاده از Full text indexها در کوئری‌های
۸- معرفی چند بانک‌های اطلاعاتی NOSQL در حوزه Full Text
۹- معرفی چند Case Study موفق فارسی در حوزه Full Text با استفاده از NOSQL

 

 

پشتیبانی از جستجو به زبان فارسی در Fulltext Search
چند سال پیش در یکی از شرکت‌های معتبر نرم‌افزاری دنبال روشی بودیم که بتوانیم سرعت جستجو در میان متن نامه افزایش دهیم. برای افزایش سرعت جستجو از Full Text Index استفاده کردیم اما روش جستجو با استفاده از این ایندکس Prefix Search است، در این روش جستجو ملاک Search شروع لغات موجود در ایندکس با متن مورد جستجو است برای رفع این مشکل روشی ارائه دادیم که توانستیم جستجو را مانند Like ‘%xxxx%’ در Full text Index پیاده‌سازی کنیم.

 

 

۱۳-Triggerها و تاثیر آن بر کارایی بانک اطلاعاتی

۱- بررسی مفهوم Trigger
۲- بررسی انواع DML Trigger
۳- بررسی کنترل Business Ruleها با استفاده از Trigger و تاثیر آن بر کارایی بانک اطلاعاتی
۴- بررسی استفاده از توابع پر کاربرد هنگام کار با Trigger
۵- بررسی Triggerهای تو در تو و بازگشتی
۶- بررسی تعیین اولویت برای Triggerها

 

 

استفاده از تریگر و کاهش کارایی بانک اطلاعاتی
چند سال پیش با مجموعه‌ای که با SQL Server 2008 کار می‌کرد همکاری داشتم. در یکی از جداول بزرگ این مجموعه در جهت ثبت سوابق تغییرات رکوردهای این جدول از After Trigger استفاده شده بود. پس از آنالیز و بررسی تریگر موجود در جدول متوجه دو موضوع مهم شدیم.
۱- ارتباط After Trigger با Fragment شدن جدول
۲- افزایش مدت درج و به روز رسانی رکوردهای موجود در جدول
برای رفع این مشکلات راهکاری خوب ارائه دادیم.

 

 

۱۴-Viewها و تاثیر آن بر کارایی بانک اطلاعاتی

۱- بررسی مفهوم View
۲- بررسی نحوه ایجاد Partition View و تاثیر آن بر کارایی بانک اطلاعاتی
۳- بررسی نحوه ایجاد ایندکس بر روی Viewها
۴- بررسی نحوه اعمال Clustered Index بر روی Viewها
۵- بررسی نحوه اعمال Non Clustered Index بر روی Viewها

 

 

استفاده به جا از Index View
در یکی از پروژه‌هایی که برای افزایش کارایی آن درگیر بودم با تعداد زیادی از جداول اطلاعات پایه درگیر بودم که هزینه Join آنها بالا بود با بررسی نوع جداول و فیلدهای مورد استفاده در کوئری‌ها تصمیم به ایجاد Index View در بانک اطلاعاتی مربوط به پروژه گرفتم. استفاده از این ویژگی باعث شد که هزینه مربوط به Join کوئری‌ها حذف گردد.

 

 

 

۱۵-Functionها و تاثیر آن بر کارایی بانک اطلاعاتی

۱- بررسی مفهوم Function
۲- بررسی انواع Functionها
۳- بررسی Scalar Function و تاثیر آن بر کارایی بانک اطلاعاتی
۴- بررسی In Line Function و تاثیر آن بر کارایی بانک اطلاعاتی
۵- بررسی Multi Statement Function و تاثیر آن بر کارایی بانک اطلاعاتی
۶- بررسی مشکلات مربوط به Cardinality Estimation هنگام کار با Functionها

 

 

تاریخ شمسی و چالش‌های مربوط به آن
یکی از روش‌های ذخیره تاریخ در بانک‌های اطلاعاتی ذخیره آن به صورت میلادی است اما مشکل زمانی است بخواهیم این تاریخ را به صورت شمسی نمایش دهیم. برای انجام این کار در SQL Server ما می‌توانیم Scaler Function استفاده کنیم. این روش توسط اکثر شرکت‌های نرم‌افزاری استفاده می‌شود، اما زمانی که حجم داده‌های موجود در جداول شما زیاد باشد دیگر این روش جوابگوی کار نخواهد بود و باید از روش‌های بهینه و مناسبی استفاده کنید.

 

 

۱۶- پارتیشن‌بندی جداول

۱- پارتیشن‌بندی چیست؟
۲- چه زمانی باید سراغ پارتیشن‌بندی جداول برویم.
۳- چگونه یک جدول را پارتیشن‌بندی کنیم؟
۴- چگونه ایندکس‌های خود را پارتیشن‌بندی کنیم؟
۵- معرفی انواع تکنیک‌های پارتیشن‌بندی
۶- آشنایی با تابع $Partition
۷- بررسی نحوه استفاده از File Groupها هنگام کار پارتیشن‌بندی جداول
۸- پارتیشن‌بندی و فشرده‌سازی داده‌ها
۹- انجام عملیات Merge و Split به ازای پارتیشن‌ها در SQL Server
۱۰- استفاده از ویژگی Incremental Statistics هنگام پارتیشن‌بندی
۱۱- معرفی Best Practices برای پارتیشن‌بندی جداول

 

 

پارتیشن بندی یک جدول با حجم ۹۰۰GB
در یکی از پروژه‌های بزرگی که درگیر بودم جدولی در حدود ۹۰۰ گیگابایت حجم داشت. برای افزایش سرعت عملکرد این جدول تصمیم به پارتیشن‌بندی جدول بر اساس ماه گرفتیم.
مهمترین مزیتی که این تکنیک به ما داد این بود که توانستیم Active Partitionها یا پارتیشن‌هایی که مراجعه به آنها زیاد می‌باشد را در دیسک‌های پرسرعت قرار دهیم. همچنین ما ویژگی Incremental Statistics را در این جدول فعال کردیم که تاثیر بسیار مناسبی در عملکرد کوئری‌هایمان داشت.
رفتن به سمت Data Partitioning اصولی دارد که ما در این دوره این اصولی دارد که در این دوره این اصول را به خوبی یاد می‌گیریم.

 

 

 

۱۷-جداول موقت و تنظیم TempDB و تاثیر آن بر کارایی بانک اطلاعاتی

۱- Temp Table یا جداول موقت چیست؟
۲- تاثیر استفاده از Temp Table بر کارایی بانک اطلاعاتی
۳- Table Variable چیست؟
۴- تاثیر استفاده از Table Variable بر کارایی بانک اطلاعاتی
۵- TVP چیست ؟
۶- تاثیر استفاده از TVP بر کارایی بانک اطلاعاتی
۷- بررسی بانک اطلاعاتی TempDB
۸- بررسی نحوه پیکربندی صحیح بانک اطلاعاتی TempDB
۹- بررسی مفهوم Latch Contention و نحوه کاهش آن در بانک اطلاعاتی TempDB
۱۰- بررسی Trace Flagهای وابسته به Tempdb

 

 

تنظیم صحیح بانک اطلاعاتی TempDB
بانک اطلاعاتی TempDB یکی از مهمترین بانک‌های اطلاعاتی سیستمی موجود در SQL Server است که تنظیم صحیح آن به طور مستقیم در کارایی بانک اطلاعاتی تاثیر دارد. یکی از راه‌های بهینه‌سازی TempDB افزایش تعداد Data Fileهای آن به نسبت CPU Coreهای سرور است. اما این افزایش تعداد Data Fileها همراه با آیتم‌های دیگر باید انجام شود. خود من این موضوع را در اکثر پروژه‌های Tuningی که درگیر می‌شوم انجام می‌دهم.

 

 

۱۸-Execution Plan Query (نقشه اجرایی کوئری‌ها)

۱- بررسی پیشرفته اپراتورها در Execution Plan
۲- بررسی Trivial Plan
۳- بررسی اپراتورهای فیزیکی مربوط به Join (Nested Loop, Merge Join , Hash Join)
۴- بررسی اپراتورهای فیزیکی Aggregate (Stream Aggregate , Hash Aggregate)
۵- بررسی Table Spool
۶- بررسی Parallelism
۷- بررسی Index Query Hint
۸- بررسی Force Order Hint
۹- بررسی Loop, Merge, Hash join Hint
۱۰- بررسی ForceSeek , ForceScan Hint
۱۱- بررسی NoExpancd Expand Hint
۱۲- بررسی Fast N Hint

 

 

هدایت کوئری به سمت اجرا به صورت Parallel
در کورس قبلی Performance & Tuning یکی از دوستان شرکت کننده در دوره کوئری داشت که پلن اجرایی آن به صورت Serial بوده و زمان اجرای آن بیش از ۳ دقیقه بود ما با بازنویسی کوئری مربوطه توانستیم روند اجرای کوئری را به حالت Parallel در بیاوریم. طی این حالت ردیف‌های بازگشتی به ازای هر کدام از اپراتورها توانایی اجرای بر روی CPU Coreهای مختلف دارند.

 

 

۱۹-بررسی Plan Caching

۱- مروری بر مکانیزم Cache کردن Execution Plan در SQL Server
۲- آشنایی با Plan Cache در SQL Server
۳- بررسی DMVهای مربوط به مشاهده Plan Cache
۴- بررسی دستورات مدیریت Plan Cache
۵- بررسی استفاده مجدد از Execution Plan
۶- Parameter sniffing چیست و چگونه بوجود می‌آید؟
۷- راه‌حل رفع مشکل Parameter Sniffing چیست؟
۸- بررسی تاثیر استفاده از پروسیجرها در افزایش کارایی کوئری‌ها
۹- بررسی تکنیک‌هایی کاربردی برای ایجاد پروسیجرهای بهینه
۱۰- بررسی استفاده از Dynamic SQL در دستورات TSQL
۱۱- مشکلات Ad-Hoc Queryها چیست؟
۱۲- Auto Parameterization چیست؟
۱۳- Plan Guides چیست؟
۱۴- استفاده ویژگی Adaptive Query Processing در SQL Server 2017
۱۵- استفاده از ویژگی Automatic Query Tuning در SQL Server 2017
۱۶- بررسی تاثیر استفاده از Plan Regression در SQL Server 2017

 

 

استفاده از ویژگی Adaptive Query Processing
یکی از ویژگی‌های جالبی که در SQL Server 2017 ارائه شده مربوط به بهبود پردازش و تهیه Execution Planهای مناسب می‌باشد. زمانی که کوئری شما در SQL Server اجرا می‌شود با توجه به Statisticsهای موجود در جدول تعداد رکوردهای بازگشتی تخمین زده شده و بهترین Execution Plan ایجاد می‌شود. با توجه به اینکه همیشه مقدار Statisticsها به روز نمی‌باشد امکان ایجاد Planهای نامطلوب در SQL Server وجود دارد، در SQL Server 2017 با استفاده از ویژگی Adaptive Query Processing می‌توانیم بر مشکلات مربوط به تخمین تعداد رکوردهای بازگشتی غلبه کنیم. در طی این دوره ما به این ویژگی و همچنین راه‌کارهای استفاده شده در آن آشنا می‌شویم.

 

 

۲۰-بررسی Wait و انواع آن

۱- بررسی مدل اجرایی SQL Server
۲- آشنایی با مفهوم SQL OS
۳- بررسی SQLOS و معماری آن در SQL Server تحت ویندوز
۴- بررسی SQLOS و معماری آن در SQL Server تحت لینوکس
۵- بررسی مفهوم Schedulers در SQL Server
۶- بررسی مفهوم Task در SQL Server
۷- بررسی مفهوم Workers در SQL Server
۸- آشنایی با مفهوم Wait
۹- آشنایی با انواع Waitها
۱۰- بررسی DMVها و DMFها مربوط به استخراج اطلاعات Waitها
۱۱- آشنایی با با CX_PACKET Wait
۱۲- آشنایی با PAGELATCH_ and PAGEIOLATCH Wait_
۱۳- آشنایی با ASYNC_NETWORK_IO Wait
۱۴- آشنایی با SOS_SCHEDULER_YIELD Wait
۱۵- آشنایی با IO_COMPLETION Wait
۱۶- آشنایی با راهکارهای مربوط به کاهش Waitها مشهور
۱۷- آشنایی با تنظیمات Processor و Thread در SQL Server

 

 

بدست آوردن وضعیت Waitها به ازای هر Session
از SQL Server 2016 به بعد یک DMV جدید به نام sys.dm_exec_session_wait_stats ایجاد شده است که وظیفه آن استخراج اطلاعات مربوط به Waitهای هر کدام از Sessionها می‌باشد. ما با این DMV کارهای خوبی می‌توانیم انجام دهیم برای مثال می‌توانیم یک کوئری را بر روی سرور اجرا و Waitهایی که این کوئری به ازای انجام کار درگیر می‌شود را استخراج کنیم.

 

 

۲۱-مانیتورینگ SQL Server

۱- آشنایی با برنامه Performance Monitor
۲- آشنایی با مفهوم Counter و نحوه کار با Counterها در برنامه Performance Monitor
۳- آشنایی با مفهوم Counter و نحوه کار با Counterها در SQL Server
۴- بررسی Counterهای کاربردی مخصوص SQL Server
۵- ایجاد Data Collector در برنامه Performance Monitor
۶- معرفی برنامه مانیتور Apex SQL Monitor

 

 

استفاده از برنامه‌های Monitoring
استفاده از برنامه‌های مخصوص مانیتورینگ باعث می‌شود که بتوانیم یک Performance Baseline خوب ایجاد کنیم. معمولاً برنامه‌های مانیتورینگ تعداد زیادی Metric قوی از پیش تعریف شده برای SQL Server دارند که وضعیت هر کدام از آنها را در بانک اطلاعاتی خود ذخیره می‌کنند. ما می‌توانیم با نصب یکی از آنها بر روی سرور مانیتورینگ کارایی بانک اطلاعاتی خود را مانیتور کنیم.

 

 

۲۲-استفاده از برنامه SQL Server Profiler

۱- بررسی نحوه ایجاد Trace و اعمال فیلترهای پیشرفته بر روی آن
۲- آشنایی با اصطلاحات رایج در Profiler
۳- بررسی نحوه تعریف Trace برای پیدا کردن کوئری‌های کند
۴- بررسی نحوه تعریف Trace برای پیدا کردن Blocking
۵- بررسی نحوه تعریف Trace برای پیدا کردن Deadlock
۶- بررسی ایجاد Server Side Traceها
۷- آشنایی با نحوه آنالیز خروجی برنامه SQL Profiler
۸- بررسی ترکیب خروجی برنامه Performance Monitor و SQL Profiler

 

 

ایجاد Traceهای Server Side در برنامه SQL Profiler
یکی از بهترین برنامه‌هایی که با آن می‌توان مشکلات مربوط به کارایی کوئری‌ها را کشف کرد برنامه SQL Server Profiler است ما با استفاده از این برنامه می‌‌توانیم کوئری‌هایی که مدت زمان اجرای طولانی دارند را پیدا کرده و مشکلات مربوط به آنها را حل نماییم. فقط باید توجه داشت که برای این که Batch Request سرور کاهش پیدا نکند و سرور بتواند تعداد زیادی Request در ثانیه را پاسخ دهد باید Traceهای خود را به صورت Server Side ایجاد کنیم.

 

 

۲۳-استفاده از ویژگی Query Store

۱- برررسی معماری Query Store
۲- بررسی نحوه پیکربندی بانک اطلاعاتی برای استفاده از Query Store در SQL Server
۳- بررسی DMVهای مرتبط با Query Store در SQL Server
۴- بررسی نحوه Force کردن Planها با استفاده از Query Store
۵- بررسی نحوه استفاده از گزارش‌‌های تکمیلی Query Store

 

 

آنالیز کندی سیستم بدون نصب ابزارهای جانبی
بانک اطلاعاتی یکی از پروژه‌‌هایی که درگیر آن بودم SQL Server 2016 بود در جهت افزایش سرعت کوئری نیاز داشتیم به سریع‌ترین نحو ممکن از وضعیت اجرای کوئری‌ها و همچنین Execution Plan آنها اطلاع یابیم. یکی از بهترین ابزارهایی که از نسخه ۲۰۱۶ به بعد در SQL Server تعبیه شده است Query Store نام دارد این ابزار به راحتی آب خوردن امکان انجام این کار را به ما می‌دهد.

 

 

۲۴-سخت‌افزار و تاثیر آن بر کارایی SQL Server

۱- آشنایی با اصطلاحات موجود در حوزه سخت‌افزار سرور
۲- آشنایی با چالش‌ها و مسئال مربوط به Memory
۳- آشنایی با چالش‌ها و مسئال مربوط به Processor
۴- آشنایی با چالش‌ها و مسئال مربوط به Disk
۵- آشنایی با چالش‌ها و مسئال مربوط به Network
۶- آشنایی با مفهوم RAID
۷- آشنایی با انواع RAID
۸- معرفی SSD و تاثیر استفاده از آن در کارایی SQL Server
۹- بررسی مفهوم NUMA و تاثیر آن بر کارایی
۱۰- بررسی تنظیم Maximum Memory در SQL Server
۱۱- بررسی تنظیمات وابسته به سخت‌افزار در SQL Server

 

 

انتخاب RAID و تاثیر آن در عملکرد SQL Server
یکی از پارامترهای مهم در عملکرد SQL Server عملیات IO می‌باشد. نوع RAID یکی از فاکتورهای مهمی است که در کارایی SQL Server و همچنین کارایی عملیات IO تاثیر دارد. ما در این دوره با انواع RAID و پارامترهای موثر در آن آشنا می‌شویم تا بتوانیم به حداکثر Throughput در عملیات IO برسیم.

 

 

۲۵-ماشین مجازی و استفاده از آن در SQL Server

۱- بررسی مفهوم مجازی ‌سازی
۲- بررسی انواع روش‌های مجازی ‌سازی
۳- بررسی Applicationهای مخصوص مجازی ‌سازی
۴- بررسی مفهوم Hypervisor
۵- بررسی انواع Hypervisor
۶- بررسی تنظیمات مناسب ESX برای SQL Server
۷- بررسی تنظیمات مناسب Hyper-V برای SQL Server

 

 

آیا از Virtual Machineها باید استفاده کنیم؟
این سوالی است که خیلی از سازمان‌ها از من می‌پرسند. در پاسخ باید بگویم که با توجه به شرایط و وضعیت برنامه‌ها امکان استفاده از VMها وجود دارد. در اغلب موارد اگر تنظیمات مناسبی بر روی VMها انجام شود می‌توانیم کارایی بانک‌های اطلاعاتی خود را افزایش دهیم.

 

 

۲۶-معرفی ویژگی Buffer Pool Extension

۱- آشنایی با معماری Buffer Pool Extension
۲- بررسی دلیل استفاده از SSD به عنوان RAM
۳- آشنایی با نحوه خواندن و نوشتن Pageها در SSD
۴- آشنایی با Extended کردن Buffer Pool در SQL Server بر روی SSD

 

 

غلبه بر مشکلات کمبود حافظه RAM
یکی از قابلیت‌های SQL Server 2014 به بالا امکان Extended کردن Buffer Pool در این روش چنانچه ما مشکل Memory داشته باشیم می‌توانیم به کمک SSD بخشی از داده‌هایی که قرار است در Buffer Pool قرار گیرد را بر روی SSD منتقل کنیم تا کارایی بانک اطلاعاتی به نحوه مناسبی افزایش یابد.

 

 

۲۷-معرفی ویژگی Resource Governor

۱- بررسی Resource Governor
۲- بررسی سناریوهای قابل استفاده برای Resource Governor در SQL Server
۳- بررسی نحوه محدود کردن CPU با استفاده از Resource Governor
۴- بررسی نحوه محدود کردن Memory با استفاده از Resource Governor
۵- بررسی نحوه محدود کردن IO با استفاده از Resource Governor
۶- بررسی نحوه ایجاد Classifier Function برای کار با Resource Governor

 

 

فراخوانی وب سرویس و افزایش Workload بانک اطلاعاتی
چند سال پیش در یکی از سازمان‌های دولتی درگیر رفع مشکلات مربوط به کارایی بانک اطلاعاتی بودیم با بررسی که روی سرور انجام دادیم مشخص شد که یک کوئری بهینه (Index Seek) به تعداد زیادی روی سرور در حال اجرا می‌باشد به طوری که در طی ساعتی خاص امکان کار با سرور مهیا نبوده و سرور به علت فراخوانی مکرر این کوئری بهینه Busy می‌باشد. با بررسی دقیق‌تر متوجه شدیم که این کوئری توسط یک وب سرویس در حال فراخوانی است. برای اینکه این وب سرویس کلی Resourceهای سرور را در اختیار نگیرد Resource Governor را پیکربندی کردیم.

 

 

۲۸-بررسی Lock & Block & Concurrency

۱- آشنایی با مفهوم Lock
۲- بررسی مفهوم Concurrency
۳- بررسی انواع مشکلات رایج هنگام کار با Resourceها به صورت همزمان
۴- بررسی انواع Lock
۵- بررسی مفهوم Blocking
۶- بررسی نحوه بوجود آمدن Blocking
۷- بررسی نحوه پیدا کردن Blocking
۸- بررسی مفهوم Deadlock
۹- بررسی حالت‌های مختلف بوجود آمدن Deadlock
۱۰- بررسی روش‌های کشف Deadlock
۱۱- بررسی نحوه رفع مشکلات Deadlock و کاهش آن
۱۲- بررسی مفهوم Lock Escalation
۱۳- بررسی مفهوم Isolation Level
۱۴- بررسی انواع Isolation Level
۱۵- بررسی Application Lock
۱۶- بررسی Schema Lock
۱۷- بررسی نحوه طراحی استفاده از Transaction در برنامه‌ها
۱۸- بررسی Delay Durability Transaction و

 

 

Blocking و عوامل بوجود آمدن آن
خیلی از دوستان فکر می‌کنند که وقتی کوئری به کندی اجرای می‌شود عامل آن عدم وجود ایندکس مناسب است. در صورتی که یکی از عوامل کندی اجرای کوئری‌ها Blocking است. یکی از کارهایی که من همیشه در پروژه‌های خودم انجام می‌دهم کشف و بررسی عوامل Blocking است. برای انجام این کار باید حتماً با مفهم Blocking آشنا باشید پس از آن می‌توان عوامل آن را با استفاده از ابزارهای موجود در SQL Server کشف و مشکلات مربوط به آنها را رفع کرد.

 

 

۲۹-Memory Optimized

۱- بررسی معماری Memory Optimized Table
۲- بررسی ویژگی‌های Memory Optimized Table
۳- بررسی دلایل استفاده از Memory Optimized Table
۴- بررسی انواع ایندکس‌های موجود در Memory Optimized Table
۵- بررسی پروسه Garbage Collection
۶- بررسی Offline CheckPoint Thread در هنگام کار با Memory Optimized Table
۷- بررسی وضعیت Log File در هنگام استفاده از Memory Optimized Table
۸- بررسی Statistics هنگام کار با Memory Optimized Table
۹- Transactionها و چالش‌های مربوط به آن هنگام کار با Memory Optimized Table
۱۰- بررسی Delay Durability Transaction و تاثیر استفاده از آن در Memory Optimized Table
۱۱- بررسی Native Compiled Stored Procedure
۱۲- بررسی استفاده از TVP از نوع Memory Optimized Table
۱۳- آشنایی با DMVهای و SPهای سیستمی مربوط Memory Optimized Table
۱۴- آشنایی با تغییرات مربوط به SQL Server 2017 به ازای Memory Optimized Table
۱۵- بررسی چند Case Study مناسب برای استفاده از Memory Optimized Table

 

 

انجام درخواست‌ها در کمتر از یک میکرو ثانیه
زمانی که SQL Server 2014 ارائه شد یکی از مهمترین ویژگی‌های آن Memory Optimized Table بود، در آن زمان در یکی از شرکت‌‌های مسئولیت تیم طراحی و توسعه بانک اطلاعاتی با من بود به اصرار من و یکی دیگر از دوستانم قرار بر این شد که بانک اطلاعاتی جداول اصلی این پروژه از نوع Memory Optimized Table انتخاب شود. ما عملیات CRUD مربوط به این جداول را با Natively Compiled Stored Procedure پیاده کردیم و از آن در Entity Framework استفاده کردیم. پس از گذشت چند سال هر موقع به سوابق اجرای کوئری‌های مربوط به این پروژه بزرگ نگاه می‌کنم سرعت اجرای اغلب کوئری‌های مربوط به این جداول در حد یک میکرو ثانیه می‌باشد.(توجه داشته باشید هر یک میکرو ثانیه برابر است با یک میلیونوم ثانیه)

 

 

۳۰-Column Store Index

۱- آشنایی با برخی مباحث موجود در Data Warehouseها
۲- آشنای با Columnstore Index
۳- بررسی معماری مربوط به Columnstore Index
۴- آشنایی با مفهوم Batch Mode Processing
۵- بررسی مفهوم Row Group
۶- بررسی Delta store و Delete Bitmap در Columnstore Index
۷- آشنایی با روش‌های فشرده‌سازی مربوط به Columnstore Index
۸- آشنایی با DMVهای مربوط به مانیتور کردن Columnstore Index
۹- بایدها و نبایدهای مربوط به Columnstore Index
۱۰- آشنایی با تغییرات مربوط به SQL Server 2017 به ازای Columnstore Index
۱۱- بررسی نحوه اعمال تنظیمات مناسب برای Bulk Insert در Columnstore Indexها
۱۲- بررسی تاثیر استفاده از Columnstore Index در Data Warehouseها
۱۳- بررسی نحوه استفاده از Columnstore Index در OLTPها
۱۴- بررسی استفاده از Columnstore Index هنگام کار با Memory Optimized Table

 

 

استفاده از Columnstore Index در Data Warehouse
در یکی از پروژه‌هایی که درگیر بودم جدولی با حدود ۲ میلیارد و ۴۰۰ میلیون رکورد داشتم که روزانه بیش از ۱۰ میلیون رکورد به جدول مربوطه اضافه می‌شود. هدف ما در این پروژه افزایش سرعت کوئری‌ها بود. با توجه به اینکه اغلب کوئری‌های مربوط به این جدول از جنس تحلیلی می‌باشد. تصمیم گرفتیم از Columnstore Index در آن استفاده کنیم همانطور که در تصویر دقت مشاهده می‌کنید سرعت اجرای کوئری‌ها به طرز وحشتناکی افزایش پیدا کرد، کوئری که بیش از دو میلیارد و چهارصد میلیون رکورد را در خود درگیر می‌کند در کمتر از یک ثانیه (۳۰۰ میلی ثانیه) روی سرور اجرا شد.

 

 

۳۱-SQL Linux و نکات مربوط به افزایش کارایی در SQL Server تحت لینوکس

۱- آشنایی با نحوه نصب SQL Server در Linux
۲- بررسی ویژگی‌های پشتیبانی شده توسط SQL Linux
۳- آشنایی با معماری SQL Linux
۴- معرفی PAL (Platform Abstraction Layer)
۵- بررسی تنطیمات مخصوص Kernel Setting در لینوکس برای SQL Server
۶- مقایسه کارایی SQL Server for Linux و SQL Server for Windows
۷- بررسی تنظیمات Database Instant File Initialization در SQL for Linux
۸- پیاده‌سازی یک Case Study و اعمال workload بر روی آن در SQL Linux

 

کارایی SQL Linux
خیلی از دوستان از من در خصوص کارایی SQL Linux می‌پرسند و من هم در پاسخ TPC Benchmark را به آنها معرفی می‌کنم. در کلاس H مربوط به این Benchmark اوضاع SQL Linux خیلی خوب است و حتی در برخی موارد از SQL Server تحت ویندوز هم عملکرد بهتری داشته است.
برای اطلاعات بیشتر در این خصوص می‌توانید به این لینک مراجعه کنید.
راستی تا یادم نرفته بگم هر موقع لینوکس را می‌بینم یاد پنگوئن کوچولوی مربوط به اون می‌افتم.

 

 

 

 

نظرات صوتی و کتبی برخی از دوستانی که در دوره Performance & Tuning در SQL Server شرکت کرده اند

نظر صوتی آقای مسعود سرشکی
[مدیر تیم دیتابیس و پرتال شرکت ایرانسل]


نظر صوتی آقای علیرضا فتحی


نظر صوتی آقای محمد رضا منصف


نظر صوتی آقای مجید افتخاری


نظر صوتی آقای رستم زاده


نظر صوتی آقای امید اکرادلو
[شرکت تجارت الکترونیک پارسیان]


نظر صوتی آقای سید مهدی معصومی


نظر صوتی آقای محمد مهربانی


نظر صوتی آقای امیر نوابی
[خبرگزاری فارس]


نظر صوتی آقای مجید شاه آبادی


نظر صوتی آقای رامین عشایری


نظر صوتی آقای فرزاد اسماعیلی


نظر صوتی آقای مهدی حائری
[شرکت بیمه مرکزی]


نظر صوتی آقای مجتبی خوشرو


نظر صوتی آقای امیر نجفی پور (شرکت ایزایران)


نظر صوتی آقای راعی


نظر صوتی آقای رحمت زاده (شرکت نیوآ)


نظر صوتی آقای وحید ملاعباسی (شرکت ایزایران)


نظر صوتی آقای غلامحسین عبادی (شرکت ایران خودرو)


نظر صوتی آقای بهروز ثمرین (بیمارستان میلاد)


 

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

 

خانم م.مهدی (شرکت ایزایران)
این دوره، به نظر من دوره کاملی برای مبحث Tuning بود از استاد طاهری کمال تشکر را دارم که اطلاعات مفیدی در اختیار کلاس گذاشتند.

 

خانم ه.عرب‌زاده
کلاس مفید بود، باتشکر.

 

خانم ح.جلالی‌فر
دوره بسیار خوب

موارد کاربردی ذکر شد
با تشکر از زحمات شما.

 

خانم ش.فراهانی
همه مباحث به خوبی مطرح شد. با تشکر

 

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

 

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

 

خانم صفارپور
مفید بود، به نظر من بهتر است بعد از پایان کلاس، اسکریپت های اجرا شده در کلاس به ایمیل ارسال شود.

 

آقای رکنی
بسیار مطالب مفیدی ارائه شد

 

آقای کریم پور:
جلسه بسیار مفید بود. اگر امکانش وجود داشته باشد یک چک لیست از کارهایی که یک Performance Tunner باید انجام دهد تهیه شود تا در پایان جلسات به هر دانشجو تحویل داده شود.

 

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

 

آقای ر. كاظم عليلو
با سلام و خسته نباشيد به شما
با توجه به مشكلاتي عديده اي كه برا من پيش آمده بود متاسفانه موفق به دنبال كردن مطالب همگام با شما نبودم اما تا آنجايي كه مطالب و آموزش شما را دنبال كردم رضايت كامل را دارم و خسته نباشيد جانانه به شما مي گويم
با تشكر

 

آقای م. امینی
بسیار خوب و عالی و مفید و … بود
باز هم منتظر دوره های دیگر هستم

 

 

 

 

 

 

 

 

 

 

مدرس دوره مسعود طاهری کیست؟

مسعود طاهری بیش از ۱۱ سال است که بصورت کاملا حرفه‌ای در دنیای SQL Server فعالیت می‌کند.

 

۱-سخنران بخش هوش تجاری همایش مورد تایید مایکروسافت در سال ۲۰۱۷ در ایران
۲-مدیر واحد پروژه های هوش تجاری و دیتابیس در نیک آموز
۳-رئیس بخش دیتابیس شرکت خدمات نوین سداد
۴-کارشناس ارشد تحلیل و طراحی شرکت تجارت الکترونیک پارسیان (PECco).
۵-مدرس دوره ۱۵ جلسه ای آموزش Performance & Tuning در SQL Server
۶-مدرس دوره ۱۵ جلسه ای دوره SQL Server ویژه برنامه نویسان
۷-سخنران همایش معرفی قابلیت های جدید SQL Server 2016
۸-مشاور SQL Server در شرکت های رایورز، سازمان بورس، کشتیرانی و…
۹-برگزاری دوره SQL Server 2008 به عنوان مدرس برای سازمان بورس و اوراق بهادار تهران.
۱۰-برگزاری دوره به روز رسانی به SQL Server 2014 در سازمان کشتیرانی کل کشور
۱۱-برگزاری دوره به روز رسانی به SQL Server 2014 در سازمان زندان‌های کل کشور
۱۲-برگزاری دوره SQL Server 2012 برای تیم DataCenter شرکت ParsOnline (پارس آنلاین).
۱۳-برگزاری دوره SQL Server 2012 Performance & Tuning برای شرکت مهندسی رایورز.
۱۴-برگزاری دوره High Availability with SQL Server 2008 برای تیم فنی شرکت پخش البرز.

 

 

 

 

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

 

 

اگر خارج از تهران هستید یا پُرمشغله هستید چرا در دوره غیرحضوری شرکت نمی‌کنید!؟
اگر خارج از تهران هستید، اگر پُرمشغله هستید: بصورت غیرحضوری ثبت نام کنید، کلاس را زنده ببینید و فیلم با کیفیت فوق حرفه‌ای به همراه جزوات کاملا رنگی و دستورالعمل اجرا دریافت کنید.

 

 

 

 

 

 

 

 

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

پیش نیاز این دوره، دوره آموزش کوئری نویسی در SQL Server است.

 

 

دوره حضوری با دوره غیرحضوری چه فرقی دارد؟

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

 

 

 

پشتیبانی بوسیله یک گروه تلگرام اختصاصی

تصور کنید شما جلسه اول را گذارنده‌اید و یا فیلم آنرا تماشا کرده‌اید، حال از جلسه اول یک سوال برای شما پیش آمده است:

 

 

 

۱٫ آیا باید یک هفته صبر کنید تا سوال خود را مطرح کنید؟
۲٫ آیا باید تلفن کنید و با مدرس صحبت کنید؟
۳٫ آیا باید ایمیل بزنید؟

تنها با پرسیدن در گروه تلگرامی VIP مشکل شما به راحتی آب خوردن توسط مدرس و سایر دوستان دیگر حل خواهد شد. از دوره لذت ببرید!

 

 

 

 

نمایش Live و زنده دوره برای افراد غیرحضوری

دوستانی که بصورت غیرحضوری ثبت نام کرده‌اند می‌توانند دسکتاپ و صدای مدرس را به صورت کاملا زنده مشاهده کنند. در هر کجای جهان هستید بدون هیچ محدودیتی در کلاس باشید.

 

 

 

 

 

پیش نیازهای دوره

پیش‌نیاز این دوره، دوره آموزش کوئری‌نویسی در SQL Server 2017 می‌باشد.

 

 

 

 

کل دوره در یک نگاه

عنوان دوره: دوره آموزشی Performance Tuning در SQL Server 2017
پیش نیازهای دوره: دوره آموزشی کوئری‌نویسی در SQL Serve
مخاطبین: برنامه‌نویسان و مدیران بانک‌های اطلاعاتی
طول دوره:  ۲۵ جلسه ۳ ساعته، جمعا ۷۵ ساعت آموزش تصویری + ۶۰۰ دقیقه تمرین اضافی کلاسی
پشتیبانی: دارای گروه تلگرامی اختصاصی است
نحوه ارائه: این دوره به صورت غیرحضوری ارائه می‌گردد.
مدیریت دوره: فرید طاهری مدیریت نیک آموز
مدرس: مسعود طاهری
مبلغ غیرحضوری: یک میلیون و پانصد هزار تومان

 

+

 

 

 

 

 

 

شرایط غیرحضوری:
محتوای غیرحضوری: ۲۵ جلسه ۳ ساعته، جمعا ۷۵ ساعت آموزش تصویری + ۶۰۰ دقیقه تمرین اضافی کلاسی، صوت دوره، تمرین‌ها، PDF بر روی یک فلش مموری
مشاهده Live: دسکتاپ و صدای مدرس، بصورت زنده و آنلاین قابل مشاهده است.
نحوه دریافت: هر دو هفته یکبار (هر دو جلسه) با پست سفارشی بصورت رایگان ارسال می‌گردد.
مبلغ سرمایه گذاری غیرحضوری: یک میلیون و پانصد هزار تومان

فیلم‌ها و سایر موارد بعد از میکس و چند روز بعد از برگزاری کلاس برای تمامی دوستان ایمیل می‌گردد تا شرکت کنندگان با دوره هماهنگ جلو بروند.

 

 

آیا مبلغ دوره مناسب است!؟

به نظر من مبلغ دوره بسیار، بسیار ارزان و مناسب است، این دوره دارای تمرین و سناریوهای کاملا اختصاصی است که البته مدرس از تجربیات ارزشمند خود در کل دوره خواهد گفت که می‌توانید از آن استفاده نمایید. همچنین شما پشتیبانی یک گروه اختصاصی تلگرامی را نیز خواهید داشت.

 

گارانتی برگشت ۲ برابری پول

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

 

 

 

 

 

نحوه ثبت نام در دوره به چه شکل است؟

شما به دو صورت حضوری و غیرحضوری می‌توانید در این دوره ثبت نام کنید.

 

 

ثبت نام بصورت غیرحضوری:
۱- ابتدا بر روی دکمه زیر کلیک کنید.

 

 

 

۲- نوع ثبت نام شما غیرحضوری است و به سبد خرید اضافه خواهد شد.

۳- اطلاعات را تایید کنید و به صفحه پرداخت وصل خواهید شد.

۴- تبریک می‌گویم شما در لیست قرار گرفتید، ۱۰ دقیقه بعد حتما ایمیل خود را چک کنید.

 

 

(اگر نیاز به پیش فاکتور و یا فاکتور دارید لطفا با شماره تلفن ۸۸۲۱۲۸۶۹ – ۰۲۱ تماس گرفته و درخواست نمایید).

1- روی دکمه خرید (حضوری یا غیرحضوری) کلیک کنید تا به سبد خرید هدایت شوید.
۲- مراحل خرید اعم از لاگین، تکمیل اطلاعات و پرداخت اینترنتی را انجام دهید.
۳- در انتها و بعد از پرداخت به قسمت مشخصات سفارش خود هدایت خواهید شد.
۴- تبریک می‌گوییم شما در لیست خریداران این دوره قرار گرفته‌اید بعد از ۵ دقیقه ایمیل خود را بررسی کنید.

به نظر من مبلغ دوره بسیار ارزان و مناسب است، توجه داشته باشید مطالبی که در این دوره گفته می‌شود بسیار منحصربفرد و ناب هستند و به شما این اطمینان را می‌دهم که در هیچ کجای ایران نمی‌توانید همچین دوره‌ای با این کیفیت پیدا کنید. این دوره دارای تمرین و سناریوهای کاملا اختصاصی است که البته مدرس از تجربیات ارزشمند خود در کل دوره خواهد گفت که می‌توانید از آن استفاده نمایید.

خیر، واقعیت این است که یک تیم پرتلاش با مدرسین واقعا حرفه‌ای بصورت شبانه‌روزی فعالیت می‌کنند تا بتوانند دوره‌های آموزشی در سطح بسیار بالایی تولید کنند.
لطفا و خواهشا کپی نکنید و موارد زیر را مدنظر داشته باشید:

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

64 دیدگاه برای دوره آموزشی Performance & Tuning در SQL Server2017

  1. mogtaba.namdarpoor

    :

    با سلام و تبریک سال نو

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

    • فرید طاهری

      :

       با سلام خدمت شما دوست عزیز

      رسالت ما آموزش و پشتیبانی آموزش ها (پرسش و پاسخ) است، پشتیبانی که شما مدنظر دارید در حقیقت کارآموزی هست و ارتباطی به پشتیبانی ندارد

      متاسفانه از قبول کارآموز معذوریم. شاید با پایین آوردن توقعات و همچنین نوشتن چندین پروژه برای دوست یا آشنا (البته با مبلغی بسیار کم یا حتی رایگان) بتوانید رزومه ای برای خود اوکی کنید.
      با اینکار بسیار از شرکت ها با دیدن پروژه شما حاضر هستند شما را استخدام کنند (البته باید از جاهای کوچک و متوسط شروع کنید)

      موفق باشید

  2. mogtaba.namdarpoor

    :

     سلام 

    من همچنان منتظرم
  3. فرید طاهری

    :

    سلام دوست عزیز

    در جواب پیغام شما عرض کردم، متاسفانه از قبول کارآموز معذوریم.
    با تشکر

  4. mogtaba.namdarpoor

    :

     ممنونم

     سایت خوبی دارین امیدوارم همینطوری ادامه بدین و همیشه موفق و پیروز باشید
  5. قاسم

    :

     سلام ایا محتوای اموزش جنون سرعت در sql server در این هم است 

    • فرید طاهری

      :

      با سلام
      بلی وجود دارد.

      ولی در حال حاضر این دوره بصورت حضوری و غیرحضوری عرضه نمی گردد.
      با تشکر

  6. mhdi2012

    :

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

  7. صابر

    :

    سلام.

    چه زمانی دوباره عرضه می شود ؟؟

  8. mostafa kashani

    :

     با سلام.این محصول چه زمانی دوباره عرضه می شود؟

  9. حسن دهیاری دهیاری

    :

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

  10. مهران رحمتی

    :

     سلام

    این مجموعه اموزشی را بنده تهیه کرده ام .بسیار کاربردی و علمی مطالب بیان  شده است .
  11. مهدی کریم پور

    :

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

    چرا نیک آموز دانشنامه دوره های برگزار شده رو به دانشجویان نمی ده.
    با تشکر فراوان
    • فرید طاهری

      :

       سلام آقای کریم پور عزیز خوبید؟
      اگر منظورتان مدرک است، همکاران من چندبار پیرو پیامک شما تماس گرفتند ولی متاسفانه شما پاسخگو نبودید. ممنون می شوم لطف کنید و با شما ۰۲۱۴۴۲۷۷۶۹۹ تماس بگیرید و درخواست خود را تلفنی بفرمایید.

      با تشکر

  12. امیر

    :

     آیا اصلا این دوره دوباره ارائه خواهد شد ؟

  13. حسینی

    :

        با سلام

    لطفا روزهای دوره را هم اعلام بفرمایید
    لطفا به گونه ای روز دوره را در نظر بگیرید که دوستانی که از سایر شهرها قصد حضور دارند نیز بتوانند و با حداقل مشکل از نظر مرخصی و … مواجه شوند
    • فرید طاهری

      :

         سلام آقای حسینی عزیز
      دوره در روزهای جمعه از ساعت ۹:۳۰ الی ۱۲:۳۰ است
      شروع دوره از جمعه، ۸ آبان ۹۴ خواهد بود.
      در صورتی که نمی توانید تشریف بیاورید لطفا بصورت غیرحضوری ثبت نام کنید.
      در ثبت نام غیرحضوری جلسات بصورت هفتگی ارسال می گردد و شما می توانید بصورت هفتگی دوره را ادامه داده و در جریان آموزش ها قرار بگیرید.

      با تشکر

  14. مجتبی شهریور

    :

       با سلام
    با تشکر از زحمات شما
    برای دوستانی که بصورت غیر حضوری در دوره های نیک آموز ثبت نام میکنند یا دوره ها را خرید میکنند گواهی (مدرک )صادر می شود

    • فرید طاهری

      :

      سلام دوست عزیز
      دوستانی که در طول دوره با ما هستند (هم حضوری و هم غیرحضوری) برای آنها مدرک صادر خواهد شد.

  15. mehran

    :

        سلام میشه بگین خرید هر کدوم ازقسمت ها بصورت جدا امکان پذیر هست یا خیر و اگر هست یعنی قیمت هر دوره ۵۲ هزار تومان هستش

    خواهشا به سوالم جواب بدید
  16. هادی ناصحی

    :

        سلام

    ای کاش روزهای غیر جمعه هم کلاس داشته باشید واقعا امکان حضور در این روز میسر نیست.
    • فرید طاهری

      :

      سلام دوست عزیز
      اکثریت دوستان برایشان راحت تر است که جمعه ها سر کلاس حضور داشته باشند
      اگر نمی توانید تشریف بیاورید این امکان فراهم شده است که بصورت غیرحضوری ثبت نام کنید  

  17. mehran

    :

        خواهشا سرفصلاشو امروز بزارید از انتظار نمی دونم چه کار کنم

  18. azizi

    :

        سلام امروز سرفصلاشو می زارید؟ خواهش میکنم همین امروز بزارید و میشه بگین چند نفر ثبت نام کردند

  19. امیر

    :

    چرا سرفصلاشو هنوز نگذشتید مگه قرار نبود اموز بذارید 

  20. جواد نوروزی

    :

        سلام

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

    :

        با سلام و خسته نباشید.این دوره خیلی خوبه من تو اولین باری که برگزار شد بهپصورت غیر حضوری شرکت کردم عالی بود.فقط یک سوال جناب مهندس طاهری دوره یا مبحث اموزشی تو زمینه امنیت و سایر مطالب وابسته به sql server تو برنامه ندارین تقریبا بیشتر دوره ها برمیگرده به بحث کارایی و سرعت اما DBA ها تقریبا یک بحث که باهش سر و کار دارن کارایی و امنیت و سایر مباحث وابسته رو هم نیاز دارند

  22. مسعود طاهری

    :

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

    امسال حتما دوره در حوزه امنیت + HA + Upgrade 2016خواهیم داشت (ان شااله)
    موفق باشید
  23. مرتضی

    :

     یه سوال داشتم.
    من چند ساله که دارم کار نرم افزار انجام می دم.
    با هر دو پایگاه داده اوراکل و اس کیو ال سرور هم کار کردم.
    تو اوراکل برای ذخیره فایلهای باینری، از BLOB استفاده می کردیم. تو اس کیوال هم از نوع Image
    این کار باعث افزایش حجم خیلی زیادی تو پایگاه داده میشد.
    یه بار داشتم پایگاه داده ای که نرم افزار JIRA ایجاد کرده بود نگاه می کردم. (سرعت این نرم افزار خیلی بالاست.) دیدم که بعد استفاده یک سال شرکت، حجم اون ۱۰۰ مگابایت بیشتر نشده.
    خیلی تعجب کردم. خلاصه بعد کلی جستجو دیدم که تمامی فایل ها رو تو سیستم درایو ذخیره می کنه و مدیریت مسیرها فقط تو دیتابیس هست.
    میخواستم بدونم کلا، این نوع داده چه زمان هایی به کار میاد؟ هم BLOB تو اوراکل و هم Image تو اس کیو ال.
    ممنون میشم که راهنمایی ام کنید.

    • مسعود طاهری

      :

             سلام 

      راه کاری که خدمت شما ارائه می شود مخصوص SQL Server می باشد.
      ۱- به جای Image از Varbinary (max) استفاده کنید 
      2- اگر حجم BLOB کمتر از ۲۵۶KB است می توان آن را در دیت تایپ  Varbinary (max) ذخیره کرد
      ۳- اگر حجم BLOB بالا ۲۵۶KB است بهتر است خارج از DB ذخیره شود برای اینکار در SQL Server قابلییت Filestream و Filetable استفاده کنید 
      برای کسب اطلاعات بیشتر به پادکست صوتی (فارسی) زیر گوش کنید
      ضمنا در دوره Performance جدید (با رویکرد جدید) این موضوع به طور کامل بررسی شده است
  24. صادق

    :

      سلام. آیا این دوره خیلی متفاوت تر از  دوره ویژه برنامه نویسان هست؟

    • فرید طاهری

      :

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

  25. احمد رضاپور

    (مالک تایید شده):

    سلام

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

      :

             احمد جان سلام

      SQL Server بانک اطلاعاتی است که قابلیت اجرا تحت شبکه را دارد و در این زمینه یکی از بهترین ها است. این مورد نیاز به دوره آنچنانی ندارد کافی است که شما App خود را نوشته و در قسمت تنظیمات Connection String آدرس سرور (محل قرارگیری SQL و…) را ذکر کنید
      برای کسب اطلاعات بیشتر در این خصوص می توانید به این پادکست صوتی گوش دهید.
      در ضمن دوره SQL Server ویژه برنامه نویسان در همین راستا می باشد
  26. مسعود سبک خیز

    :

        با سلام 

    من سال پیش دوره Sql server رو در یکی از اموزشگاه های معروف تهران گذروندم 
    بعد از اون به سمت php و طراحی سایت اومدم ؛ ۲تا سوال از حضورتون داشتم : 
    1) ایا این ترفند ها و اموزش ها مناسب mysql هم هست؟ 
    2) با چه تضمینی میگید که با شرکت در این دوره به درامد چندملیونی در ماه برسید ؟ شفاف تر می فرمایید
    ممنون
    • فرید طاهری

      :

         سلام دوست عزیز
      ) ایا این ترفند ها و اموزش ها مناسب mysql هم هست؟
      خیر ، کلا منظق و فلسفه MYSQL با SQL Server بسیار متفاوت است.

      با چه تضمینی میگید که با شرکت در این دوره به درامد چندملیونی در ماه برسید ؟ شفاف تر می فرمایید
      الان بیشترین استخدام شرکت ها در SQL Server کسانی هستند که با تکنیک های Performance آشنا باشند.
      نمونه استخدام ها را چند وقتی است که در دستور کار قرار دادیم و برای اعضای سایت ارسال می کنیم
      همچنین برنامه نویسانی که با این قابلیت ها آشنا هستند مانند آب خوردن استخدام شده و حقوق های چند میلیونی دریافت می کنند.

      دوست عزیز یادگیری بهترین سرمایه گذاری برای کسب درآمدهای بالا است.

      • مسعود سبک خیز

        :

            خب من الان موندم بین برنامه نویسی php  و این فیلد 

        قطعا راحت هم نیست این فیلد جدید و نیاز به زمان داره 
  27. احمد رضاپور

    (مالک تایید شده):

        در سوال قبلی منظور من ارسال دوکوئری متفاوت و همزمان به مقصد یک رکورد خاص بود. آیا رکورد Lock میشود؟ یا سیاست دیگری در پیش گرفته میشود؟

    در پادکست صوتی اشاره ای به این مسئله نکرده اید..
    • مسعود طاهری

      :

          یکی از مکانیزم های کنترل همزمانی Lock می باشد. این مبحث یک موضوع تخصصی است و با مباحث مانند Latch, Isolation Level,Lock Escalation و… در ارتباط است تمامی این موارد در طی این دوره (Performance & Tuning) بررسی خواهد شد.

      حالا هنر این است که شما کاری کنید که این Lock و… به حداقل برسه (چه از لحاظ زمانی و چه از لحاظ تعداد) و دستور به سریعترین روش ممکن اجر بشه. 
  28. حسن دهیاری دهیاری

    :

       سلام

    آیا در این دوره، مواردی را که در قسمت مشاوره و انجام پروژه Sql Server جهت مشاوره مطرح کرده اید تدریس می شود؟
    • فرید طاهری

      :

      سلام آقای دهیاری عزیز

      در قسمت مشاوره و انجام پروژه مباحث بسیار است در این دوره ما مبحث Performance & Tuning را آموزش می دهیم.
      با تشکر

  29. حسن دهیاری دهیاری

    :

    سپاسگزارم
    در مبحث Performance & Tuning خود من بصورت غیر حضوری ثبت نام کرده ام و سایر مقالات و اموزشهای خوبتان را هم دنبال می کنم  اما با توجه به اینکه موارد زیر که جزء خدمات ویژه نیک آموز می باشد بسیار مهم و حیاتی است و کم و بیش درگیر آن هستم  آیا تاکنون آموزشهای کاربردی در این خصوص داشته یا در آینده خواهید داشت؟
    Backup & Restore
    Database Recovery
    Database Security
    Database High Availability
    و در آخر اگه امکان داره منابع مفیدی در خصوص این موضوعات اعلام فرمایید
    با تشکر
    • مسعود طاهری

      :

          سلام 

      در قسمت رادیو نیک آموز پادکست هایی صوتی به ازای هر کدام از این موضوعات خواهیم داشت ضمنا در اینده آموزش هایی در این خصوص هم ارائه خواهد شد
  30. حسن دهیاری دهیاری

    :

          سپاسگزارم

    به امید موفقیت روز افزون برای خانواده نیک آموز
  31. حسن دهیاری دهیاری

    :

        با سلام

    آیا این دوره که در حال برگزاری می باشد شامل ۵۰ درصد تخفیف نمایشگاه می شود؟
  32. محمد جواد فتح قریب

    :

    با سلام

    من دوره performance tuning به صورت غیر حضوری  دنبال می کنم سوالاتی که برام پیش میاد رو کجا و چگونه میتونم مطرح کنم
    با تشکر

  33. صادق

    :

       با سلام  و ادب
    گزارشات  جلسات  این دوره  دیگه  روی  سایت قرار نمی گیره؟
    ممنونم

    • فرید طاهری

      :

          با سلام خدمت شما دوست عزیز

      کمی درگیر کارهای آخر سال هستیم. از جلسه بعد روی سایت قرار می گیرد.
      با تشکر از پیگیری شما
  34. محمد رضا موسائی سجزی

    :

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


  35. محمد رضا موسائی سجزی

    :

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


  36. میثم تیموری

    :

    سلام

    آيا امکان دریافت جلسات دوره به صورت یکجا و نه هفتگی وجود دارد؟

    ممنون
    • فرید طاهری

      :

          سلام دوست عزیز

      هم اکنون این امکان وجود دارد که کل دوره را بصورت یکجا سفارش دهید.
  37. مجتبی بهرامی

    :

        ببخشید من با اطلاعات کمی که دارم این دوره میتونه مفید باشه.

  38. delphiman68
    5 out of 5

    :

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

  39. mregister
    4 out of 5

    :

    سلام
    این دوره دوره های زیر را کامل در بر میگیره ؟
    ۱- پارتیشن‌بندی داده‌ها در SQL Server 2016
    ۲- افزایش سرعت کوئری‌ها در SQL

    یا برای مباحث تکمیلی باید دوره های فوق هم تهیه بشه؟

    • فرید طاهری

      :

      سلام و وقت بخیر.
      بلی دربر میگیرد.

  40. محسن یوسفیان
    3 out of 5

    :

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

    • آرزو محمدزاده

      :

      با سلام و عرض ادب

      بله امکان سفارش هست اما مجموعه نیک آموز در حال تهیه دوره جدید این محصول آموزشی هست که به صورت حضوری و غیرحضوری قرار است برگزار گردد. به شما توصیه میکنم که حتما محصول جدید رو خریداری بفرمایین که شامل سرفصل‌های جدیدتری می‌شود. این محصول هفته آینده از طریق سایت امکان ثبت سفارش دارد.

  41. Mehdi
    1 out of 5

    :

    سلام،

    SQL Graph Objects in SQL Server 2017 در این دوره تدریس می شود؟

    ممنون.

    • آرزو محمدزاده

      :

      با سلام و عرض ادب

      به نقل از مهندس مسعود طاهری

      این مبحث مربوط به دوره SQl Server ویژه برنامه‌نویسان است اگر فرصت شود به مطالب جدید هم پرداخته می‌شود ولی در کل این مباحث مربوط به دوره برنامه‌نویسان است.

  42. پوریا بهادری
    5 out of 5

    (مالک تایید شده):

    با سلام
    من که تو این دوره شرکت کردم ، (غیر حضوری) و مطمئن هستم پشیمون نمیشم ، دقیقا مثل دوره SQL Server برای برنامه نویسان و Business Intelligence ، نیک آموز کارش حرف نداره و مطمئن هستم در کارم نتیجه مثبتی خواهد داشت ، مثل همیشه که داشته .
    سپاس

    • آرزو محمدزاده

      :

      درود بر شما و سپاس از همراهیتون دوست عزیز.

  43. mohammad
    5 out of 5

    (مالک تایید شده):

    سلام آقای مهندس مسعود طاهری
    با عرض تشکر از سایت خوبتون
    من میخواستم توی یه Store Procedure یه ورودی از جنس Table داشته باشم. البته نوع این Table هر بار تعداد و نوع ستون هاش تغییر میکنه و ثابت نیست. آیا امکان این عملیات هست؟؟
    ممنون

    • مسعود طاهری

      :

      سلام دوست عزیز
      برای ارسال پارامتر به پروسیجر می توانید از TVP استفاده کنید توجه داشته باشید که قالب مربوط به ستون ها (فیلدها) باید از قبل مشخص شده باشد.
      اگر بخواهید داینامیک کار کنید بهتر است است از XML و یا JSON استفاده کنید در SQL Server 2016 به بعد پشتیبانی از JSON را داریم

  44. mohammad
    4 out of 5

    (مالک تایید شده):

    با سلام مجدد خدمت جناب استاد طاهری
    تشکر فراوان بابت راهنمایی موثر در مورد json که کارامد واقع شد اما ما جهت داینامیک سازی بیشتر آن به دنبال هستیم که بعد از With در Syntax ذیل بتوان یک select یا متغییر از نوع char جاگزین نمود که داخل پرانتز به صورت داینامیک ستون ها تغییر یابد
    سپاس فراوان جهت محبت و همکاری حضرتعالی

    SELECT *
    FROM
    OPENJSON (N'[{“TmpMT15ID”:5,”SupplierPersonelID”:1,”SupplierDate”:”2018-01-07T15:59:12.937″}]’)
    WITH ( ستون های متغییر یا یک SELECT)

    • مسعود طاهری

      :

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

  45. هادی علی مددی
    5 out of 5

    :

    با سلام خدمت استاد طاهری عزیز .
    استاد عزیز خواستم بدونم در این دوره مفهوم Bottleneck و راهکارهای جلوگیری از این مشکل ذکر میشود یا خیر ؟
    همچنین خواستم بدونم در این دوره مباحث مربوط به شبیه سازی محیط عملیاتی نیز ذکر میشود یا خیر ؟

    • مسعود طاهری

      :

      به طور کلی هر آنچه مربوط باعث کندی در روند اجرای App شود را گلوگاه (Bottleneck ) می گویند مثل ایندکس های بد، Blocking و… ما در این دوره مباحث اون را به خوبی بررسی می کنیم
      در خصوص سناریوها عملیاتی شبیه سازی به این راحتی نیست اما برخی از اون ها را میشه شبیه سازی کرد. در این دوره در برخی از قسمت ها تجربیات خودم را خدمت دوستان معرفی خواهم کرد.

  46. سیامک
    3 out of 5

    :

    من میخواستم دوره غیر حضوری رو خریداری کنم ولی قیمت بسیار بالایی داره و هزینه ش با دوره حضوری تفاوت چندانی نداره

    • آرزو محمدزاده

      :

      با سلام و عرض ادب

      برای سهولت در خرید برای علاقه مندان ما ۱۰ درصد مبلغ رو ابتدای سفارش دریافت می کنیم و مابقی رو در چند قسط طبق جدول قسط انتهای صفحه از دانشجویان دریافت کرده تا علاقه مندان به دوره بتوانند در دوره شرکت کنند.

      با سپاس

  47. esmailkarami
    3 out of 5

    :

    با سلام
    سروری که ما بر روی آن sql server را نصب کرده این دارای ۶۴ core می باشد ولی تعداد استفاده شده توسط sql server برابر با ۲۰ عدد می باشد.
    سوال من اینه که چطور می تونم این محدودیت را حذف کنم؟
    با سپاس

    • مسعود طاهری

      :

      سلام
      نسخه Enterprise Core based را نصب کنید در این دوره این موضوع بررسی می شود

  48. fava.shiraz
    3 out of 5

    :

    با عرض سلام خدمت دوستان سایت نیک آموز
    من مسئول DBA یکی از ادارات هستم آیا این دوره به درد من میخوره ؟
    این سوال رو پسیدم چون یکی از دوستان در پاسخ سوال های مطرح شده گفتن این دوره مخصوص برنامه نویس ها هست
    ممنون از پاسخگوییتون

    • مسعود طاهری

      :

      سلام
      به شدت
      هم به درد Developerها و هم به درد DBAها
      در ضمن توجه داشته باشید که پیش نیاز این دوره ، دوره کوئری نویسی در SQL Server 2017 است
      نسخه جدید مسیر راه برای SQL Server به زودی در سایت قرار می گیرد

  49. Mehdi
    5 out of 5

    :

    صحبت آقای طاهری مبنی بر این که کلید کلاستر ایندکس باید به صورت Incremental انتخاب شود بسیار مفید و کاربردی است زیرا باعث کاهش Fragmentation و کاهش تعداد دفعات Rebuild index می شود.

    این موضوع زمانی Bold می شود که در یک Case Study خاص SQL Server یک Page را با دو IO لود می کند اما در حالتی که Fragmentation رخ می دهد، همان Page را با پنج IO لود می کند.

    با سپاس.

  50. بهجت منش
    5 out of 5

    :

    سلام
    خسته نباشید
    در سال ۹۷ کلاس حضوری این دوره گذاشته می شود؟

    • مسعود طاهری

      :

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

  51. محمد
    5 out of 5

    (مالک تایید شده):

    با سلام. مباحث اضافه شده توی این دوره ۲۵ جلسه ای نسبت به دوره ی قبلی که ۱۵ جلسه بود چیاس؟؟

    ممنون

    • مسعود طاهری

      :

      خیلی از مباحث و مثال های این دوره عوض شده است
      ما در این دوره در مباحثی مانند Columnstore Index و In-Memory OLTP و Wait و… عمیق تر وارد شدیم

  52. titaniom
    4 out of 5

    :

    با عرض سلام شما دوره ی in memory optimize برگزار نمیکنید اکثر دیتابیس ها به همین سمت رفتن وچند وقت دیگه این مدل های کنونی منسوخ میشه خوب میشد این دوره رو هم برگزار کنید
    نکته بعدی اینکه تو نسخه جدید sql گراف ومباحث جدیدتری مثل دیتابیس غیر رابطه ای مطرح شده متاسفانه من جزو هیچ کدوم از سرفصل های دوره هاتون ندیدم خب قرار نیست این مباحث هم گنجانده بشه؟

    • مسعود طاهری

      :

      سلام
      بحث Memory Optimized Table جزء سرفصل های دوره Performance & Tuning است
      گراف دیتابیس در SQL Server در نسخه ۲۰۱۷ منتشر شده ….

      برای NOSQL در آینده نه چندان دوره های جدیدی به امید خدا برگزار خواهیم کرد

  53. معین
    5 out of 5

    :

    سلام
    برای خرید دوره غیر حضوری شرایط قسطی وجود دارد؟

    • مسعود طاهری

      :

      سلام برای این مورد با دفتر تماس بگیرید

  54. م.گ
    4 out of 5

    :

    سلام مطالب بسیار عالی بود

  55. بهی
    4 out of 5

    :

    سلام
    فرق دوره PERFORMANCE TUNNING و جنون سرعت چی هست؟

    • آرزو محمدزاده

      :

      با سلام و عرض ادب

      دوره پروفرومنس بسیار جامع تر از جنون سرعت است
      محصول جنون سرعت مقدمات ایندکس + ایندکس گذاری را آموزش می دهد
      تمامی موارد دوره جنون سرعت در دوره جامع پرفورمنس به صورت کامل لحاظ شده است

  56. Mehdi
    5 out of 5

    :

    سلام،
    وقتی اساس یک Application بر پایه
    ۱- Cursor
    ۲- Cross Join
    ۳- Nested Multi-Statement Table Value Function
    ۴- Function at Where Condition
    ۵- Cross Apply
    و عوامل دیگر نابود کننده Performance مانند بازه های زمانی از ابتدای سال تا اکنون و … گذاشته شده، چگونه میشه Tune کرد ؟؟
    با تشکر

    • مسعود طاهری

      :

      بخشی از این کار با ایندکس گذاری و بخش عمده ای از کار با بازنویسی روال های پیاده سازی شده و استفاده از دستورات جدید یا دستورات با Execution Planهای مناسب می باشد.
      مورد بازنویسی به شدت در این نوع سیستم ها زمان بر بوده اما اگر پیاده سازی صحیح انجام شود معجزه می کند

  57. Mehdi
    5 out of 5

    :

    از پاسخ شما بسیار سپاسگزارم.

    حتی Developer هایی که چهار سال است روی یک Business خاص کار می کنند هم جرات تغییر و بازنویسی برخی از پروسیجرها را ندارند، چون ترس از نتایج اشتباه در اثر بازنویسی وجود دارد.
    بازنویسی نیاز به تسلط بر روی Business دارد.

    • مسعود طاهری

      :

      معمولا کم کم شروع به بازنویسی باید در این سیستم های انجام شود
      قسمت هایی که کابراران به اون تسلط دارن بررسی و بهبودهای لازم انجام شود. اما بلی باید قبول داشت که این کار بسیار زمان بر و… است

  58. Mehdi
    5 out of 5

    :

    استفاده Natively Compiled Scalar Function عملا تاثیر مثبتی بر روی کوئری هایی که از Scalar Function استفاده می کنند ندارد. و Performance اینگونه کوئری ها با وجود استفاده از Natively Compiled Scalar Function همچنان پائین است. در حالی که بدون در نظر گرفتن ستونی که شامل Scalar Function است سریع اجرا می شوند.
    لینک زیر
    http://www.sqlservercentral.com/blogs/sqlinthewild/2016/01/12/natively-compiled-user-defined-functions/

    با سپاس از مجموعه نیک آموز

    • مسعود طاهری

      :

      سلام
      هر کدام از این موارد را می توان با حالت و روال های مختلف پیاده سازی است
      نوع کار + روش پیاده سازی برای حل مسئاله و… می تواند نتایج مختلفی ارائه دهد
      توی اون مثالی که شما فرمودید نتیجه جالبی اخذ نشده
      لینک زیر مدل دیگه از استفاده این روال ها می باشد
      https://blog.learningtree.com/sql-server-2016-natively-compiled-user-defined-functions-udfs/

      نمیشه نسخه کلی پیچید که صد در صد سرعت میره بالا و… بستگی به مسئله مورد نظر دارد

  59. Mehdi
    5 out of 5

    :

    سلام

    Natively Compiled Stored Procedure واقعا سریع اجرا می شود و بسیار عالی است، اجرای Natively Compiled Scalar Function از درون یک Procedure یا Function عادی Performance جالبی ندارد و در محیط عملیاتی نیز Improvment حاصل نشد.

    با سپاس

    • مسعود طاهری

      :

      سلام
      اشاره کردم اگر شما می خواهید در پروژه خودتان Improvement بدست آورید نیاز است که روال های قبلی را بازنویسی + ایندکس گذاری و… انجام شود .
      هر کدام از روش های استفاده از Natively ها…. با توجه به صورت مسئاله می توانند راه حل مناسبی باشند.

  60. Mehdi
    5 out of 5

    :

    سلام
    سپاس از نظر جامع شما.

    خواستم عرض کنم که عموما استفاده از Scalar Function باعث پایین آمدن Performance می شود حتی اگر Natively Compiled باشد.
    بهتر است استفاده نکنیم یا در صورت امکان Inline Function استفاده نمائیم.

    به صورت Typically آیا استفاده از CLR Function به جای Multi-Statement و Scalar باعث بهبود Performance می شود؟ (تست های گرفته شده تفاوتی را نشان نمی دهند.)

    • مسعود طاهری

      :

      بسیار عالی و دقیق
      بحث استفاده از انواع فانکشن و تفاوت Performance اون ها در کورس بررسی شده است

  61. Mehdi
    5 out of 5

    :

    مطابق لینک زیر اگر عمل محاسبه داشته باشیم و کوئری به صورت Single Execution با تعداد ردیف کم باشد Inline Function مناسب است و ارزش رفتن به سمت CRL Function را ندارد. اما اگر میلیون ها ردیف درگیر Function می شوند یا هزاران Transaction Per Scond داشته باشیم CLR Function ها Performance بهتری خواهند داشت.
    https://www.red-gate.com/simple-talk/sql/t-sql-programming/clr-performance-testing/

    با سپاس و آرزوی موفقیت برای شما.

  62. جعفر
    5 out of 5

    :

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

    • مسعود طاهری

      :

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

  63. Mehdi
    5 out of 5

    :

    سلام،
    عمل Reorganize Index به صورت Online هست، یعنی در هنگامی که ایندکس یک جدول Reorganize می شود چه کارهایی با داده های آن جدول می توان انجام داد؟ در تست های گرفته شده به هنگام Reorganize Index نه امکان درج در جدول وجود دارد و نه امکان جستجو.

    سپاس از توجه شما.

  64. Mehdi
    5 out of 5

    :

    سلام، من تست های زیادی روی Resource Governor انجام دادم اما همان گونه که در لینک های زیر نیز آمده است این ویژگی زمانی مفید است که CPU تحت فشار باشد. وگرنه Maximum CPU تعیین شده در Resource Pool در نظر گرفته نخواهد شد و ۱۰۰ درصد CPU مورد استفاده قرار خواهد گرفت.
    مشخصا گزینه MaxDop برای محدود کردن استفاده دستوراتی مانند DBCC CheckDB از CPU بسیار بهتر جواب می دهد.

    https://docs.microsoft.com/en-us/sql/relational-databases/resource-governor/resource-governor-resource-pool?view=sql-server-2017

    https://dba.stackexchange.com/questions/180022/resource-governor-not-limiting-cpu-ram
    https://social.msdn.microsoft.com/Forums/sqlserver/en-US/551a366d-a398-4e6e-8348-f63f86b5fc99/why-isnt-resource-governor-working-as-expected?forum=sqltools
    موفق باشید.

دیدگاه خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

محصولات مرتبط

تمامی حقوق مادی و معنوی این وب سایت متعلق به نیک آموز می باشد.
این سایت توسط تیم آموزش برنامه نویسی نیک آموز مدیریت می شود.