یادگیری رایگان SQL Server
MSSQLServer یکی از سیستم های مدیریت بانک های اطلاعاتی رابطه ای (Relational)است که توسط شرکت مایکروسافت ارائه شده استSQL Serverاز مدل سرویس دهنده - سرویس گیرنده(Client/Server)تبعیت می نماید. در این مدل، درخواست های(InQuery)سرویس گیرندگان برای سرویس دهنده ارسال و در سمت سرویس دهنده بررسی و آنالیز می گردند. در ادامه، پردازش های مورد نیاز بر روی اطلاعات ذخیره شده در بانک های اطلاعاتی انجام و در نهایت، نتایج برای سرویس گیرنده ارسال خواهد شد.SQL Server با استفاده از مجموعه عناصری(Components)که به صورت هدفمند اجراء می گردند، قادر به تامین نیازها و درخواست ها از مخازن داده(Data Storages)می باشد.
آموزش SQL Server Performance Monitoring and Tuning
SQL Server سکوی بزرگی برای دریافت برنامه ی دیتابیس و اجررای سریع آن می باشد. اینترفیس گرافیکی Server Management Studio به شما اجازه ی ایجاد جدول، وارد کردن داده، توسعه ی برنامه های ذخیره شده و غیره را به هیچ عنوان نمی دهد.
DMVها ابزار بسیار خوبی برای کمک به اجرای عملکرد عیب یابی مربوط به مسائل می باشد و زمانی که قدرت آنها را درک کنید، جزء اصلی Database Administration شما خواهند شد.
SQL Server ابزار بسیار خوبی ارائه می کند که به شما اجازه می دهد تا وضعیت های در حال اجرا را روی SQL Server خود مشاهده کنید،
Windows Performance Monitor or PerfMon ابزار دیگری است برای گرفتن مقیاس ها برای کل سرور شما. تاکنون در مورد DMVs و Profiler بحث کردیم که ابزاری مفید برای دریافت اتفاقاتی است که در داخل نمونه ی SQL Server در حال اجرا می باشند. اما گاهی اوقات مواردی خارج از SQL Server وجود دارند که ممکن است منجر به برخی موارد اجرایی شوند. در این بخش نگاهی به PerfMon چگونگی استفاده از این ابزار خواهیم داشت.
گزارش ها اطلاعات مفیدی را ارائه می دهند که می توانند در تعیین مکان اجرای bottlenecks استفاده شوند. داده ی این گزارش ها از DMVها و همچنین طرح پیش فرض که همیشه در حال اجراست، گرفته می شود.
در هنگام آغاز به کار با طرح های اجرایی، Graphical Plansطرح گرافیکی معمولا ساده ترین راه برای آغاز می باشد، مگر اینکه بسیار پیچیده باشد. پس ازخواندن Text Plans آیانتر می باشد. در اینجا یک query و طرح اجرایی آن را می بینید. برای وارد کردن Actual Execution Plan روی CTRL + M در پنجره ی query فشار داده و سپس کد TSQL را اجرا کنید.
SQL Server دارای ابزار اجرایی دیگری به نام Database Engine Tuning Advisor یا DTA می باشد. این ابزار به شما اجازه می دهد تا SQL Server را وادار به تجزیه ی یک وضعیت یا گروهی از وضعیت ها کنید که با اجرای یک Profiler یا طرح جانبی یک سرور دریافت کرده اید. بنابراین این ابزار وارد هر وضعیت می شود تا تعیین کند پیشرفت ها در کجا می توانند انجام شوند و سپس گزینه هایی را برای پیشرفت به شما ارائه می دهد.
فاکتورهای زیادی وجود دارند که منجر به تنزل اجرای SQL Server می شوند، در این بخش ما برخی از حوزه های متداول را که روی اجرا تاثیر می گذارند، مورد بررسی قرار می دهیم. ابزاری را مورد بررسی قرار خواهیم داد که می توانید برای شناسایی مسائل و همچنین مرور کردن برخی روش های ممکن برای اصلاح این مسائل اجرایی از آنها استفاده کنید.
برای اینکه SQL Server تمامیت داده ها (data integrity) را برای خواندن ها و نوشتن ها استفاده کند، از قفل هایی استفاده می کند، طوریکه تنها یک فرایند در هر زمان کنترل داده را دارد. قفل های زیادی وجود دارند که مورد استفاده قرار می گیرند، از جمله Shared, Update, Exclusive, Intent و غیره و هر کدام از آنها یک رفتار تاثیر متفاوت روی داده ی شما دارند.
یک مسئله ی متداول در مورد SQL Server مسئله ی deadlock می باشد. deadlock زمانی اتفاق می افتد که یک یا چند فرایند روی یک منبع مشترک در انتظار هستند و هر فرایند منتظر تکمیل شدن فرایند دیگر می باشد. وقتی چنین موقعیتی اتفاق می افتد و راهی برای حل این تضاد وجود ندارد، SQL Server یکی از این فرایندها را به عنوان قربانی deadlock انتخاب خواهد کرد و آن را به عقب باز می گرداند. بنابراین فرایند و یا فرایندهای دیگر می توانند به جلو پیش بروند.
روش های زیادی برای بهبود اجرا با قرار دادن سخت افزار وجود دارد، اما موثریت راه زمانی است که query های خود را هماهنگ سازی می کنید. یک مشکل متداول نبود ایندکس ها یا وجود ایندکس های نادرست می باشد، بنابراین SQL Server باید داده های بیشتری را پردازش کند تا رکوردهایی را که با معیارهای query ها مناسب هستند، پیدا کند. این موارد Index Scans و Table Scans نامیده می شوند.
وقتی بخش مربوط به اسکن ایندکس و اسکن جدول را بررسی می کردیم، قادر به حذف اسکنی بودیم که توسط یک Index Seek جایگزین شده بود، اما این امر نیز یک Key Lookup معرفی کرد که مورد دیگری است که ممکن است تمایل به حذف آن برای بهبود اجرا داشته باشید.
بری اینکه اطمینان حاصل کنید که دسترسی به داده تا جایی که ممکن است سریع می باشد، SQL Server مانند سیستم های مرتبط دیتابیس دیگر از نمایه سازی (indexing) برای یافتن سریع داده استفاده می کند. SQL Server ایندکس های مختلفی دازد که ایجاد می شوند، مانند clustered indexes، non-clustered indexes، XML indexes و Full Text indexes.
روش های متفاوت بسیاری وجود دارند که برای مسیریابی اجرای I/O استفاده می شوند، اما همانطور که در بالا ذکر شد با فضای ذخیره سازی NAS/SAN و محیط های مجازی SQL Server. مسیریابی دشوارتر می شود، همچنین قوانین تغییر می کنند و اگر یک I/O bottleneck وجود داشته باشد، برای تعیین چه چیزی باید پیگیری شود. مزیت آن این است که در هر دو سطح ذخیره سازی و سطح مجازی ابزار زیادی برای کمک به اجرا در دسترس می باشند، اما این موارد را در اینجا بررسی نخواهیم کرد.