امکانات منحصر به فرد SQL Server در نسخه Enterprise

امکانات منحصر به فرد SQL Server در نسخه Enterprise

نوشته شده توسط: حمید فرد
۲۹ شهریور ۱۳۹۴
زمان مطالعه: 20 دقیقه
۳
(۲)

مقدمه

نسخه SQL Server Enterprise چند امکانات داخلی منصر به فرد دارد که توانایی بالا برای بازدهی سریع در سیستم هایی با تراکنشهای بالا و پردازشهای سنگین را دارد. به عنوان مثال سیستمهای «خرید آنلاین» یا «پایانه های فروش» یا سیستمهای گزارشگیری و آنالیزی مانند Credit Reference Information System برای بانکها و بیمه ها که این امکانات و قابلیتهای پنهان در SQL Server Standard Edition موجود نمی باشد.

متاسفانه مسعولان فروش در شرکت مایکروسافت ( به عنوان مثال مایکروسافت مالزی و سنگاپور) تماما در مورد امکانات ظاهری و کلی صحبت می کنند به عنوان مثال در نسخه Enterprise چند پردازنده قابل استفاده است و یا حداکثر حافظه و قابلیتهایی مانند Business Intelligence, High Availability و البته هزینه خرید هر لایسنس برای یک پردازنده فیزیکی ( قیمت هر لایسنس برای Enterprise حدود ۲۶ هزار دلار آمریکا است) اما متاسفانه در یک سوی قضیه مشتری است که هیچ دانشی از امکانات این نرم افزار ندارد و فقط دنبال این است که هزینه لایسنس ها را تا حداکثر پایین بیاورد ولی به چه قیمت ؟ به قیمت اینکه در تراکنشهای بالا سرعت بازدهی پایین آید و امکان از دست دادن مشتریان فراهم شود؟ (البته تمامی این مثالهای در ایران قابل اجرا نیست به هزار و یک دلیل)

داستان

یک شرکت که خدمات خرید اینترنتی و دستگاه های پایانه فروش ارایه می دهد در سرور اصلی خود به دلیل پایین آوردن هزینه ها از SQL Server Standard Edition استفاده می کند. این شرکت برای بالا بردن کیفیت خدمات خود باید دارای سرور پایگاه داده قوی و پر سرعتی باشد که بتواند تمام نیازهای گزارش گیری در یک زمان را فراهم آورد. بعد از یک سال ارایه خدمات این شرکت دچار مشکلات بزرگی از قبیل حجم بالای پایگاه داده – سرعت بازدهی پایین – نداشتن توانایی آرشیو کردن میلیونها رکرورد در چند ثانیه  بدون هزینه یا وقت اضافی. به طور کلی تمامی این مشکلات با داشتن SQL Server Enterprise Edition بر طرف می شود. پس در نتیجه این شرکت نیاز به مشاوره قبل از خرید لایسنس را داشته ولی چه افسوس که برای این موضوع بسیار دیر است.

اگر SQL Server Enterprise گران است پس در مورد SQL Server Standard چه فکر می کنید؟

قابلیت اول

Advance Scan – Merry-Go-Round Algorithm این قابلیت اجازه می دهد که چند Task در خواندن یک جدول شریک شوند. به این معنی که اگر یک Execution Plan نیاز به خواند Data Page های یک جدول را داشته باشد موتور پایگاه داده آن را شناسایی کرده و با Execution Plan که قبل از آن اجرا شده و هنوز به اتمام نرسیده است شریک می کند. اینطور که اگر یک جدول ۱۰۰۰ Data Page داشته باشد و Execution Context 1 آن جدول را تا ۵۰۰ Data Page خوانده باشد و Execution Context 2 اجرا شود موتور پایگاه داده این وضعیت را شناسایی کرده و خواندن جدول را بین آنها تقسیم میکند و در این هنگام داده های جدول را یک بار خوانده و به هر دو Execution Context می فرستد نه اینکه جدول را از اول تا آخر برای هر دو Execution Context بخواند.

قابلیت دوم

Fast Recovery این قابلیت اجازه می دهد که پایگاه داده ها هرچه زودتر بعد از عملیات REDO به صورت Online در بیایند قبل از اینکه عملیات UNDO اجرا شود. این قابلیت توسط Lock Logging امکان پذیر است که تمامی اطلاعات Lock ها در فایل تراکنش ذخیره می شوند.

قابلیت سوم

Prefetching این قابلیت اجاره می دهد که SQL Server در حین خواندن داده های NonClustered Index به صورت Asynchronous داده های وابسته را از جدوال یا Clustered Index ها بخواند.

قابلیت چهارم

Scan Single Scatter موتور ذخیره سازی SQL Server  و یا Storage Engine تمامی Index Page های میانی یا Intermediate Level  را خوانده و لیست بلندی از داده های اصلی یا Leaf Page ها تهیه می کند. در این حین یک جستوجوی کلی بر روی Key Order انجام می دهد و Data Page های ذخیره شده کنار هم را شناسایی و در یک عملیات IO از دیسک می خواند. به عنوان مثال اگر Data Page شماره ۳۰۸و۴۶۵ و ۴۸۸ و ۴۸۹ در کنار هم باشند که نیاز به خواندن داشته باشید تمامی آنها را یکجا می خواند.

قابلیت پنجم

Automatic Matching این قابلیت در Query Optimizer اجازه می دهد که از اطلاعات آماری Computed Column ها در اجرا کوری استفاده شود. البته این قابلیت از SQL Server 2008 در تمامی نسخه ها وجود دارد.

قابلیت ششم

Role Reversal این قابلیت در اجرا عملیات Hash Join به کار می رود در انجام عملیات Hash Join  اگر Query Optimizer نتواند کوچکترین جدول را شناسایی کند جای آنها را تغییر می دهد. ( به فارسی و نوشتاری خیلی سخته توضیحش به لینکداین رجوع شود.)

قابلیت هفتم

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

قابلیت هشتم

Data Compression با این قابلیت شما می توانید حجم داده ها را تا ۷۰٪ کاهش دهید البته بستگی به نوع داده ای دارد. توجه بدون آنالیز و مشاوره با متخصص هیچ وقت این قابلیت را فعال سازی نکنید به دلیل آنکه اگر نوع داده ای هم خوانی نداشته باشد حجم داده ها زیاد تر شده به جای آنکه کمتر شود.

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

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

اولین نفر باش

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

    •    سلام خسته نباشید ببخشید یک سوال داشتم که ربطی به مقاله بالا نداره عذرخواهی میکنم
      میخواستم بین دو تا سرور قابلیت Replication  رو راه اندازی کنم وقتی میخوام تنظیمات مربوط به Publication  رو ست کنم خطای زیر رو میده
      TITLE: New Publication Wizard
      ——————————

      SQL Server is unable to connect to server ”.
      SQL Server replication requires the actual server name to make a connection to the server. Specify the actual server name, ‘ACADEMY-PC’. (Replication.Utilities)

      server name  رو هم تغییر میدم ولی بازهم همین خطارو میده
      خیلی ممنون

    •    خیلی مقایسه جالبی بود.اولین باری بود که این سبک مقایسه رو راجع به sql میدیدم.بیشتر جاهای دیگه ای رو که دیده بودم فقط یکسری کپی برداری یا ترجمه بود.

    •    سلام
      به نظرتون بهترین نسخه برای کار و نوشتن برنامه با سی شارپ کدوم نسخه هست و دلایل خودتون رو بگید؟

      •     سلام این موضوع بستگی به نوع برنامه ای دارد که شما می خواهید بنویسید

        ۱- آیا برنامه قرار است تحت شبکه اجرا شود
        ۲- چه امکاناتی برای برنامه در نظر گرفته اید.
        ۳- حجم دیتا
        ۴- و…
        اگر قرار است برنامه ساده ای که تک کاربره باشه و حجم دیتا زیادی نداشته باشه و برخی از امکانات SQL را بخواهید داشته باشید و همچنین بتوانید در Setup به صورت خدکار SQL Server را نصب کنید می توانید از نسخه Express استفاده کنید. (محدودیت های آن را به طور کامل بررسی کنید و سپس استفاده کنید)
        در انتها عموما در ایران چون بحث Licence و… مطرح نیست همه از Enterprise Edition برای تست و توسعه نرم افزار و همین طور محیط عملیاتی استفاده می کنند.
    •    به خاطر به اشتراک گذاشتن دانشتون بدون منت، ممنون…

       در نسخه Express که این امکانات وجود نداره درسته؟

      •  تورج عزیز: شما می توانید فقط از Express به عنوان Database Mirroring Witness در سازمانها و شرکتها استفاده کنید. 

         
        منتی نیست…. من خودم رو مثل یک Stack فرض می کنم. اگر اطلاعاتم رو انتشار ندم و از Stack خارج نکنم دیگه جایی برای دانش جدید ندارم. 
        جمله رو داشتی!!! 🙂
      •  خیر – با توجه به اینکه این نسخه مجانی است قابلیت های آن محدود (حجم محدود و…) است

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

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

      •     حمید واقعیت این است که خیلی از بچه ها درخواست ارائه لینک برای بررسی مطالب تکمیلی دارند دادن یه توضیح کوچیک و معرفی یک لینک خوب به درک مطلب خیلی کمک می کنه.

        بیشتر دوستانی که مطلب را می گذارند مثل شما (استاد عزیز) خیلی خوب توضیحات را ارائه می دهند و هدف از دادن لینک ارائه اطلاعات تکمیلی برای کسانی است که بخواهند بیشتر در این خصوص اطلاعات کسب کنند.
    • حمید عزیز بلی

      اشتباه از من بود Deferred Transaction صحیح است. من موقع خوندن دقت نکردم و Delay Transaction را جای آن دیدم
      برای کسب اطلاعات بیشتر درباره Deferred Transaction به آدرس زیر مراجعه کنید.
    • حمید عزیز بلی

      اشتباه از من بود Deferred Transaction صحیح است. من موقع خوندن دقت نکردم و Delay Transaction را جای آن دیدم
      برای کسب اطلاعات بیشتر درباره Deferred Transaction به آدرس زیر مراجعه کنید.
    •   مسعود جان Delayed Transaction Durability با Deferred Transaction فرق داره و البته اینکه توضیح شما درباره Delayed Transaction Durability یک مقدار اشتباه است. اینطور که Delayed Transaction Durability سرعت ثبت لاگ رو بالا نمی بره بلکه تراکنش دیگر منتظر به ثبت فیزیکی رکورد تراکنش در Transaction Log نمی ماند و SQL Server تراکنش انجام شده را به صورت ثبت شده فرض می کند و البته به دلیل رفتار SQL Server در مقابل این نوع تراکنش ها احتمال Corrupted Transaction یا Database Inconsistency بالا میره. 

    •     دوستان سلام 

      لینک زیر در خصوص فشرده سازی + مانیتور کردن آن به شما کمک می تواند بکند.
      مقاله زیر می تواند به شما در خصوص تصمیم گیری برای فعال سازی Compression و همچنین Match بودن Data Typeها و… کمک کند (مقاله عالی است حتما مطالعه کنید)
      در خصوص مقایسه Featureهای مربوط به هر کدام از Editionهای SQL Server هم می توانید به لینک زیر مراجعه کنید.
      از حمید عزیز هم به خاطر ارائه مقاله خوب متشکرم
      •     البته مسعود جان لیستی که من تهیه کردم و در این مقاله است در لیستی که مایکروسافت ارایه می ده نیست. قابلیت زیر رو هم به قابلیتهای بالا اضافه کنید

        Deferred Transactions که فقط در Enterprise وجود داره.
        •     مسعود جان من منظورم Delayed Transaction Durability نبود. Deferred Transaction یک امکان دیگر است. در پست اصلی در لینکداین مطلب رو اضافه کردم.

        •     بلی درست است

          دوستان درباره Delayed Transaction Durability می توانید به لینک زیر مراجعه کنید
          توضیح این تکنولوژی : 
          یکی از قابلیت های جدید SQL Server 2014 است که هدف آن پیاده سازی اعمال مرتبط با لاگ Transactionها به صورت Asynchronous می باشد. در این حالت سرعت ثبت اطلاعات در لاگ فایل افزایش پیاده می کند البته استفاده از این قابلیت شرایط و… مخصوص به خود را دارد. لینک های بالا توضیحات خوبی در این خصوص ارائه کرده است
      •    مسعود عزیز ممنون بابت پشتیبانی از طریق لینک.

    •     دوستان سلام 

      لینک زیر در خصوص فشرده سازی + مانیتور کردن آن به شما کمک می تواند بکند.
      مقاله زیر می تواند به شما در خصوص تصمیم گیری برای فعال سازی Compression و همچنین Match بودن Data Typeها و… کمک کند (مقاله عالی است حتما مطالعه کنید)
      در خصوص مقایسه Featureهای مربوط به هر کدام از Editionهای SQL Server هم می توانید به لینک زیر مراجعه کنید.
      از حمید عزیز هم به خاطر ارائه مقاله خوب متشکرم
  • 1
  • 2
هر روز یک ایمیل، هر روز یک درس
آموزش SQL Server بصورت رایگان
همین حالا فرم زیر را تکمیل کنید
دانلود رایگان جلسه اول
نیک آموز علاوه بر آموزش، پروژه‌های بزرگ در حوزه هوش تجاری و دیتا انجام می‌دهد.
close-link
وبینار رایگان SQL Server؛ مسیری به سوی فرصت‌های شغلی بی‌شمار       پنج‌شنبه 30 فرودین ساعت 15
ثبت نام رایگان
close-image