SQL Server اوراکل را پشت سر گذاشت! + آموزش و مسابقه

SQL Server اوراکل را پشت سر گذاشت! + آموزش و مسابقه

نوشته شده توسط: فرید طاهری
تاریخ انتشار: ۲۷ مهر ۱۳۹۴
آخرین بروزرسانی: 16 آذر 1403
زمان مطالعه: ۲ دقیقه
۰
(۰)

SQL Server بهتر از اوراکل، در اکتبر ۲۰۱۵ SQL Server توانست رقیت دیرنه خود اوراکل را پشت سر بگذارد، بر اساس نمواداری که شرکت Gartner ارائه کرده است، این محصول به رهبری Database تبدیل شده است و یک بازار کار عالی در حال شکل گیری در کل دنیا است. البته باید اذعان داشت که SQL Server محبوبترین پایگاه داده در بین ایرانیان نیز است. برای درک بهتر مفاهیم آموزش جامع SQL Server را مطالعه کنید.

SQL Server بهتر از اوراکل

به طور کلی در SQL Server برای کار با داده‌های رشته‌ای دو نوع Data Type (نوع داده) داریم.

۱- نوع داده Fixed Length (طول ثابت):

زمانی که شما یک فیلد از این نوع داده تعریف کنید یک فضای ثابت در حافظه با توجه به نوع داده، طول آن و… اشغال می‌کند. برای مثال نوع داده Char، NChar هر دو از نوع Fixed Length هستند و حافظه تخصیص یافته به آنها به صورت زیر می‌باشد. یک فیلد با (۵)Char عبارت است از : با توجه به طول رشته حافظه تخصیص یافته ۵ بایت می‌باشد. چه مقدار شما ۱ کارکتر باشد و چه ۵ کارکتر

(۵)NChar : با توجه به طول رشته و نوع آن (یونی کد بودن) حافظه تخصیص یافته ۱۰ بایت می‌باشد. چه مقدار شما ۱ کارکتر باشد و چه ۵ کارکتر. (حواستان باشد Data Type از نوع یونی کد بوده و هر کاراکتر آن ۲ بایت در حافظه اشغال می‌کند.)

۲- نوع داده Variable Length (طول متغییر):

زمانی که شما یک فیلد از این نوع داده تعریف کنید یک فضای متغییر در حافظه با توجه به نوع داده، طول آن و… اشغال می‌کند. برای مثال نوع داده VarChar، NVarchar  هر دو از نوع Variable Length هستند و حافظه تخصیص یافته به آنها به صورت زیر می‌باشد.
(۵)Varchar : با توجه به طول رشته حافظه تخصیص یافته حداکثر ۵ بایت می‌باشد. اگر مقدار شما ۱ کارکتر باشد طول تخصیص یافته ۱ بایت و اگر ۵ کارکتر باشد طول تخصیص یافته به آن ۵ بایت می‌باشد. پیشنهاد میکنیم برای درک بهتر مفاهیم دوره کوئری نویسی پیشرفته را مطالعه کنید.

(۵)NVarChar : با توجه به طول رشته حافظه تخصیص یافته حداکثر ۱۰ بایت می‌باشد. اگر مقدار شما ۱ کارکتر باشد طول تخصیص یافته ۲ بایت و اگر ۵ کارکتر باشد طول تخصیص یافته به آن ۱۰ بایت می‌باشد. (حواستان باشد Data Type از نوع یونی کد بوده و هر کاراکتر آن ۲ بایت در حافظه اشغال می‌کند.)

سخن پایانی

SQL Server بهتر از اوراکل، اما داستان زمانی است که شما از این Data Type Variable Length (نوع داده با طول متغییر) مانند VarChar،NVarchar در جداول خود استفاده کرده‌اید در این حالت رفتار SQL Server در تخصیص فضا به ازای این نوع Data Type‌ها کمی دور از انتظار است

برندگان مسابقه بر اساس قرعه کشی:

۱- هادی جباری دارستانی

۲- حمید صادق

۳- محمد زکی زاده

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

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

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

اولین نفر باش

گوش به زنگ یلدا
title sign
معرفی نویسنده
فرید طاهری
مقالات
5 مقاله توسط این نویسنده
محصولات
9 دوره توسط این نویسنده
فرید طاهری

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

title sign
دیدگاه کاربران

    •    سلام
      علی موسوی هستم با برنامه نویسی c# و sql server در حد متوسط اشنا هستم.
      توی یه موسسه ی اموزش عالی خصوصی فعالیت میکنم.
      از اونجا که پایگاه داده ی کار آمد وبرنامه ی مناسبی جهت امور دانشجویی وکارمندیشون نداشتن من داوطلب شدم این کار رو انجام بدم (بیشتر برای یادگیری خودم).
      از محصولات اموزشیتون بی نهایت استفاده کردم اگه اموزشهاتون نبودن واقعا خیلی کارم سخت بود.
      تشکر

    •    بله فرمایش شما درست است و انتظار می رود گارتنر به سراغ مشتریان بزرگ برود اما این نکته را نیز فراموش نکنید که ارزیابی های غیر فنی هم زیاد بوده اند.
      نکته دیگری هم در این میان وجود دارد. طی جستجویی که طی امروز انجام می دادم، برایم جای تعجب بود که چرا دنیای IT واکنش خاصی نسبت به این موضوع نداشته است!! به عبارت دیگر یا نتایج گارتنر در دنیای IT تاثیر گذار نیستند و یا اینکه هنوز برای نتیجه گیری خیلی زود است.
      البته لازم است این را بگویم خود من هم طرفدار Sql Server هستم و به همین دلیل به مطالب نوشته شده در نیک آموز دقت می کردم اما اراکل چیز دیگری است

      موفق باشید

    •  لازم یادآوری کنم مشتریانی که از آنها رای گیری شده است عملیات زیر را بر دیتابیس انجام داده و بر اساس نتایج SQL به عنوان Leadership انتخاب شده است. 

      DEFINITION OF AN OPERATIONAL DBMS WORKLOAD
      For the purposes of this evaluation, the workloads we expect to be managed by an operational DBMS include batch/bulk loading, real-time or continuous data loading, concurrent online and Web-based new and update transactions, operational reporting, and management of externally distributed processes such as “look-aside” queries. Operational DBMS products must provide the ability to prioritize these multiple workloads to ensure SLAs are met when they operate concurrently.
      ضمنا در نظر داشته باشید که مشتریانی که در این رای گیری شرکت کرده اند واقعا مشتری بزرگ و… هستند
    •     سلام دوباره بر شهرام عزیز

      بلی پارامترهای ارزیابی بر اساس نظرات مشتریان است. و باید این رو بدونیم که مشتریان هر دو DB هم مشتریان بزرگی بوده اند و تا جایی که امکان داشته است از بهترین قابلیت ها و… استفاده کرده اند. در این بین چند سال اوارکل تراز اول بوده (با فاصله بسیار زیاد) اما امسال بر اساس بررسی ها و… SQL Server به عنوان برترین شناخته شده است. 
      باید در نظر داشته باشید مشتری هایی که بر این نوع ارزیابی ها انتخاب می شوند و اقعا مشتری و استفاده کنند درجه ۱ از قابلیت های هر بانک اطلاعاتی هستند.
      در صنعت IT برای این نوع بررسی ها قطعا استانداردها و همچنین شرکت های معتبری وجود دارد که نتیجه برررسی این شرکت ها معیار پذیرش خواهد بود. 
      معمولا مقایسه هایی که بین ما کارشناسان بر اساس یکسری از حالت ها و… می باشد اما نظرات این نوع شرکت ها هم خیلی مهم است.
      اعتبار گارتنر و مشتریانی که آنها مورد ارزیابی قرار می دهند خیلی بالا است. باید دید که در آینده آیا اوارکل می تواند دوباره به عنوان leadership در نظر گرفته شود.
    •    با سلام دوباره بر همه دوستان
      مسعود جان، جا دارد بازهم از شما به خاطر آنکه با نظرهای مخالف من اینقدر با احترام و بزرگواری برخورد می کنید، تشکر ویژه داشته باشم. به جرات میگویم این بحث فنی با شما برایم بسیار جذاب و فراموش نشدنی است. امیدوارم همواره در زندگی و کار پیروز باشید.

      در Note سوم  مشخص می شود که گارتنر بر اساس رای گیری از مشتریان همان شرکتها عمل کرده است. لطفا به این جمله توجه کنید:

      we sought the views of vendors’ reference
      customers — details of whom were supplied by the vendors — via an online survey conducted
      in July 2015

      در مورد امنیت نیز امیدوارم نظر مرا قبول کنید:
      اراکل امکانات بسیار زیادی دارد.از این رو بدیهی است مشکلات امنیتی بیشتر هم داشته باشد. اراکل چند صد پارامتر دارد که حتی بسیاری از آنها Document نشده اند و توسط شرکتها و تیم های دیگر کشف می شود. البته مخفی بودن این پارامترها دلیلی بر مشکلات امنیتی نیست بلکه خود کمپانی آنها را برای برخی بررسی های آینده در داخل DB قرار داده. آیا قبول دارید امنیت Access از همه دیتابیس ها بیشتر است؟

      پیروز باشید

    •       سلام بر همه دوستان، بویژه اقای مسعود طاهری عزیز
      عنوان این صفحه که شکست اراکل برابر ماکروسافت بود، آنقدر عجیب بود که نمی شد به سادگی آنرا قابل قبول کرد.در واقع بهترین کارایی اراکل بر بستر Linux است از اینرو شکست اراکل به معنای شکست Linux برابر Windows هم محسوب می شد!!!!!

      اگر پارامترهای گارتنر را بررسی کنیم این واقعیت روشن می شود که ارزیابی گارتنر مقایسه فنی نبوده بلکه به معنای برنامه ها و اهدافی است که هر یک از شرکتها برای خود ترسیم کرده و به آنها رسیده اند. به عبارت دیگر ماکروسافت به این دلیل در رتبه اول قرار گرفته که توانسته است به برنامه هایی که برای آینده خود ترسیم کرده بود برسد. به همین دلیل است که اثری از MySQL دیده نمی شود(این شرکت دیگر وجود ندارد به همین دلیل نتوانسته برای خود اهدافی تعیین کند).لینک زیر گرچه برای تولیدکنندگان DBMS نیست اما صحت این موضوع را بیان می کند:
      http://www.systemgroup.net/news/1607

      ماتریس گارتنر از دو معیار بینش(Completeness of Vision) و قابلیت اجرا(Ability to Execute)
      تشکیل شده است. جزئیات پارامترهای مورد سنجش در هر کدام از این دو معیار فنی نیستند و بیشتر بحث Marketing را در بر می گیرند. این پارامتر ها در سایت رسمی گارتنر ثبت شده اند https://www.gartner.com/doc/486094

      شاد و پیروز باشید

      • شهرام جان سلام

        خیلی عالی است که شما دنبال این موارد هستید یک نکاهی به لینک زیر بیاندازید
        صرفا معیاری Businessی مطرح نیست. گوشه سمت راست Noteها را بخوانید برخی از روش های تست فنی را گفته اند که چگونه است.قابلیت های هر بانک اطلاعاتی توسط شرکت ها و سازمان های مختلف و… تست شده و در بررسی گارتنر در نظر گرفته می شود
        راستی در حوزه امنیت هم SQL Server بر اساس آمار گارتنر اول است. یکی از معیارهای کوچک مقایسه تعداد Hotifxهای امنیتی منتشره شده سال های مختلف برای DBMSهای مختلف است که SQL Server از همه کمتر است….
        موفق باشید
    •     سلام دوباره و خسته نباشید خدمت جناب طاهری،

      در این که Sql Server در نسخه های جدید قابلیت های مفیدی ارائه کرده است شکی نیست و رقیب سر سختی برای اوراکل خواهد بود. 
      البته سوالات زیادی همچنان وجود دارد:
      – از آنجا که محصولات اوراکل در زمینه پایگاه داده بسیار زیاد و متنوع است و منحصر به یک محصول نمی باشد. در همین نمودار گارتنر وب سرویس آمازون متعلق به اوراکل می باشد یا MySql (که در این نمودار جایی ندارد و بسیار جای تعجب است) خود محصول اوراکل است (البته محصولی که اوراکل خریداری کرد و در پایان سال ۲۰۱۵ کاملا یک محصول اوراکلی است و هم اکنون در حال توسعه آن است) لینک http://www.mysql.com (پائین صفحه سمت چپ)
      – اوراکل معمولا برای هر سناریویی Sollution خاصی ارائه می دهد. مثلا برای ابر Oracle NoSql برای پاسخ سریع و انلاین به درخواست ها Oracle Timesten , … که خود بحث های مفصلی می طلبد.
      –  آخرین محصول اوراکل (Oracle 12c) مربوط به سال ۲۰۱۳ می باشد که در زمان خود محصول بسیار موفقی بوده است و هم اکنون کار بر روی نسخه جدیدی که ارائه خواهد شد ادامه دارد.
      (به نظر بنده محصول ۲۰۱۶ Sql Server مایکروسافت یک کپی برداری از قابلیت های 12c اوراکل
      می باشد)
      – و اما بحث Parallel Sql که در اوراکل دنیایی است و مختص به یک تنظیم خاص نیست بلکه پازامترهای فراوان و انعطاف پذیری دارد که در سطح حتی یک مرتب سازی کاربر می تواند Hint مربوطه را قرار دهد و قسمت خاصی از پرس و جو را موازی کند. 
      و بحث های فراوان دیگر…
      با تشکر.
    •    با سلام خدمت همه دوستان گرامی
      مسعود عزیز، از شما به دلیل اینکه با نهایت دقت و بزرگواری به سوالات مطرح شده پاسخ می دهید، بسیار سپاسگذارم. لازم است از سعید عزیز هم تشکر ویژه داشته باشم که از مطالب ایشان نیز استفاده کرده ام.
      مسعود جان، جمله آخر شما در خصوص رهبر بودن Sql Server مرا وادار کرد تا به دنبال رد پایی از پارامترهای مورد ارزیابی گارتنر باشم. اما به موارد ضد و نقیضی برخورد کردم!! در یک جا MongoDB به عنوان رهبر Operational Database Management Systems معرفی شده است، در جای دیگر InterSystems و در سایتی دیگر EnterpriseDB و یا Microsoft. لطفا شما یا سایر دوستان اگر در این خصوص مطلبی دارید، بسیار متشکر خواهم شد که آنرا در این صفحه بیان کنید.

      http://www.marketwired.com/press-release/mongodb-recognized-as-leader-gartner-2015-magic-quadrant-operational-database-management-2063905.htm

      http://www.businesswire.com/news/home/20151016005119/en/InterSystems-Recognized-Leader-2015-Gartner-Magic-Quadrant

      http://www.marketwired.com/press-release/enterprisedb-is-recognized-second-consecutive-year-as-leader-2015-gartner-magic-quadrant-2064286.htm

      https://info.microsoft.com/CO-SQL-CNTNT-FY16-09Sep-14-MQOperational-Register.html?ls=Website

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

      •     سلام

        دیتابیس هایی که در مربع بالا سمت راست هستند به عنوان Leader در نظر گرفته می شوند اما رهبر اصلی (leader ship) یا همون سرکرده به اصظلاح عامیانه SQL Server است.
        چندین سال بود که اوراکل رهبر اصلی بود بافاصله زیاد و امسال SQL Server شد ممکن است دوباره سال آینده چند دیتابیس دیتابیس دیگر وارد مربع بالا گوشه سمت راست شوند.
        MongoDB هم گوشه سمت راست مربع بالا قرار دارد و جزء رهبرها است اما سرکرده اصلی امسال SQL Server شده است.
        موفق باشید.
    •            با سلام خدمت همه دوستان گرامی و بویژه اقای مسعود طاهری عزیز
      نکات
      متفاوتی در این Page مطرح شده که پاسخگویی به آنها مستلزم زمان است و ممکن
      است قدری پراکنده گویی هم در جملات من وجود داشته باشد به همین جهت از
      همگی عذرخواهی می کنم.
      مسعود جان، اراکل و یا هر DBMS دیگری که ادعای
      کارکردن با اطلاعاتی در حد گیگا بایت و یا ترابایت دارد هیچگاه کل DB را به
      حافظه نمی آورد بلکه همانگونه که خود شما اشاره داشتید Hot Page را به RAM
      می اورد.تا آن حد که من می دانم آلگوریتم بیشتر DBMSها نیز MRU است(Most Recently Used).
      مهمترین
      ویژگی Memory Optimized Table  این است که اطلاعات آن در RAM حفظ می شوند و
      این درحالی است که اراکل چندین سال قبل مکانیزم Keep Pool را معرفی کرد که
      به شکل مشابه سبب حفظ شدن اطلاعات جداول و یا اندکس ها در می شود:
      http://www.acehints.com/2012/04/advantage-of-caching-pinning-keeping.html
      بعدها  اراکل مکانیزمهایی نظیر Timetens معرفی کرد.
      بعلاوه
      Lock Free بودن Memory Optimized Table سبب سرعت بالاتر نمی شود بلکه به
      دلیل باقی ماندن اطلاعات این جداول در RAM است که سرعت بالاتر دارند.لطفا
      لینک زیر را ببینید تا مشخص شود Lock Free به معنای optimistic locking
      است.البته مطمئنا ماکروسافت در عملکرد آن اصلاحاتی انجام داده است:
      http://sqlmag.com/sql-server-2014/application-performance-inmemory-oltp-database-engine

      اگر
      بخواهم به سوال “آیا دوران پادشاهی اوراکل در حوزه ی مدیریت پایگاه داده
      های عملیاتی به پایان رسیده است؟” پاسخ بدهم جواب من “خیر” است. من نیز
      همانند یکی از دوستانمان امکان استفاده از زبان جاوا در اراکل را یک مزیت
      بزرگ به حساب می آورم.فراموش نکنید برای استفاده از ویژگی CLR لازم است یک
      DLL در Sql Server رجیستر شود.حال آیا هر یک از شما به عنوان مسئول امنیت
      یک سازمان حاضر هستید DLL تولید شده توسط هر فردی را در بانک اطلاعاتی خود
      رجیستر کنید؟ اراکل دارای Self Tuning است و این به معنای آن است که بر حسب
      شرایط می تواند خود را به گونه ای تنظیم کند که بالاترین کارایی را داشته
      باشد. در حال حاضر Sql Server فاقد این ویژگی است.

      درست است که
      شرکتهایی نظیر BWIN توانسته اند به بهترین نحو ممکن به درخواستها پاسخ دهند
      اما این مطلب به معنای این نیست که فقط و فقط Memory Optimized Table این
      امکان را برای آنها فراهم کرده است بلکه طراحی،برنامه نویسی، عملکرد عالی
      شبکه و عملکرد عالی سیستم عامل نیز در کنار بانک اطلاعاتی این امکان را
      برای آنها فراهم کرده است (به دلیل اصلاحاتی که Memory Optimized Table در
      نسخه بعدی Sql انجام می شود بعید نیست
      طراحی و برنامه نویسی این شرکت
      نیز دستخوش تغییر شود).بدیهی است عملکرد بد سیستم عامل، تاثیر زیادی بر
      عملکرد بانک اطلاعاتی دارد. در طی مدتی که من مطالب آقای طاهری را دنبال می
      کنم هیچگاه ندیدم که ایشان به بررسی سیستم عامل بپردازند.پس به این بهانه
      از ایشان خواهش می کنم به این نکته نیز اشاره کنند که سیستم عامل مناسب Sql
      Server باید چه ویژگی هایی داشته باشد( به عنوان مثال نوع RAID، میزان RAM
      اختصاص یافته و …) و چگونه می توان متوجه شد که سیستم عامل عملکرد مناسبی ندارد.

      برای آنکه مطلب بیش از این طولانی نشود به همین جا ختم می کنم اما مطمئنا بحثی مثل Tuning یک دنیا مطلب دارد و نمی توان در چند خط همه چیز را بیان کرد.

      شاد و پیروز باشید

      •     شهرام جان سلام

        درباره لود دیتا در حافظه ……
        در اینجا بحث من بر روی Columnstore است.
        همانور که می دانید Columnstore ایندکس در اوراکل هم وجود دارد. نکته مهمی که درباره اوراکل وجود این است که این ایندکس در حافظه ساخته می شود. و اگر شما سرورتان را Restart کنید باید منتر باشید تا ساختار این ایندکس در حافظه بازسازی شود و در این حالت کسی نمی تواند از آن ایندکس استفاده کند. اما در SQL Server این نوع ایندکس ها ساختارشان در Storage ایجاد می شود. برای مثال یک جدول Fact را در نظر بگیرید بیش از ۶۰ میلیارد رکورد دارد حالا این ایندکس Columnstore را در اوارکل ایجاد کنید و سرور را Restart کنید تا زمانی که ساختار ایندکس مجددا در حافظه ساخته نشود این نوع ایندکس در دسترس نخواهد بود. (زیاد جالب نیست درسته)
        بعلاوه Lock Free بودن Memory Optimized Table سبب سرعت بالاتر نمی شود ….
        ترکیب Lock Free + Latch Free باعث افرایش کارایی می شود زمانی که شما کوئری اجرا می کنید و بلاک نمی شوید به نوعی کارایی سیستم شما بالا می رود (Lock Free) (البته مثال خیلی ساده ….) و زمانی که درخواست های زیادی به سرور می آید و جدول شما در گیر Latch نیست به راحتی می تواند در کسری از ثانیه به درخواست های کابر (Insert,…) پاسخ دهد.گ


        درباره CLR…
        مسلماً هیج ادمینی اسمبلی دات نت را بدون بررسی و… در سرور رجیستر نمی کند تازه برای این مورد هم محدودیت های امنیتی می توان اعمال کرد که DLL صرفا عملیات Safe انجام دهد و کارهای UnSafe (مانند دسترسی به منابع OS …) نداشته باشد. 

        درباره BWIN ….
        چنانچه Case Study و مستندات BWIN را بررسی کنید متوجه خواهید شد که دوستان BWIN کل کارها را سمت SQL Server انجام داده اند . ایجاد جداول Memory Optimized + SP و…
        البته قبول دارم رفتن به این سمت ممکن است تغییرات ایجاد نمایید. در یکی از پروژه هایمان برای حوزه بانکی از این قابلیت استفاده کرده ایم و عالی جواب گرفته ایم. با جرات می توانم بگم اگر سویچ بانک مرکزی از این قابلیت SQL Server  استفاده کند به هیچ عنوان کم نمی آورد. البته تولید APP بانک (مثل سویچ ) معماری و… خودشون را دارد. استفاده از Queue و…
        به نظر شما Requestهایی که به سمت سویچ شتاب می آید در ثانیه بیش از یک میلیون است و حتی بالاتر ….
        مطمئن باشید Memory Optimized Table اگر مناسب و به خوبی استفاده شود کارایی آن بسیار بسیار بالا است و سناریوهایی از این دست را جواب می دهد.

        بررسی سیستم عامل + RAID و..
        این موارد هر کدام برای خودشان موضوعی مفصل دارند.
        تنظیمات OS تاثیر مثبتی در عملکرد SQL دارند کوچکترین نمونه آن
        در ضمنا SQL برای کار با OS …. در معماری خود یک شبه سیستم عاملی به نام SQL OS دارد. … این موضوع را در اینترنت سرچ کنید و ببینید چه قابلیت هایی دارد (البته تعریف من خیلی ساده است در حد Hello World)

        یکی از بهترین RAIDها توصیه شده برای SQL استفاده از RAID 10 است البته با تنظمیماتی خاص و….
        جدا کردن RAID مربوط به دیتا و لاگ +تنظیم  دسترسی Sequential هنگام کار با لاگ فایل ها در دیسک+ استفاده از RAID کنترل های جداگانه برای دیتا و لاگ
         (البته هر کدام از این موارد شرای خاص خودشان را دارند و جایی که لازم است باید استفاده کنیم.)
        بخشی از این موارد را تا جایی که توانستیم در دوره Performance بررسی خواهیم کرد (دوره جدید با رویکرد جدید)

        درباره حافظه هم باید این نکته را اشاره کنم که خیلی ها می گن که SQL حافظه را زیاد مصرف می کنه.
        باید این نکته را در نظر داشته باشید که حافظه SQL به قسمت های مختلفی تقسیم میشه که میتوانید با دستور DBCC MemoryStatus آن را بررسی کنید بزرگترین قسمت که حافظه به خود تخصیص داده Buffer Pool است. که  Pageها مختلف مثل Data Page,Index Page و… در آن قرار گرفته است. پس  این رو در نظر داشته باشید که این حافظه مصرف می شود (دیتا در آن کش می شود ) تا نیاز به IO فیزیکی نباشد و هر چقدر لازم باشد این دیتا در حافظه باقی می ماند تا اینکه تحت شرایطی (مانند کمبود حافظه و…) از روی رم خارج شود. بنابراین قرار نیست Memory  را در ویندوز سرور مانیتور کنید و بگید که چرا از ظرفیت حافظه کم نمی شه. اگر هر دقیقه این دیتا از حافظه خارج شود نیاز به IO فیزیکی است و….
        البته باید اشاره کنم که در SQL Server 2014 قابلیت به نام Buffer Pool Extension وجود دارد که از SSD به عنوان بافر Pool استفاده می کند….

        مطمئن باشید تمام مواردی که ذکر شده در بررسی کارشناسان گارتنر در نظر گرفته شده که SQL Server رابه عنوان رهبر انتخاب کرده اند. 
        در ضمن اگر Case Study دارید و می خواهید Memory Optimized+ Columnstore و… را چک کنید خوشحال می شوم بتوانیم با هم اینکار را انجام دهیم و با SQL مقایسه کنید.
        در آخر واقعا جواب های خوبی می دهید از شما و سعید عزیز متشکرم از هر دو شما
    •            با سلام خدمت همه دوستان گرامی و بویژه اقای مسعود طاهری عزیز
      نکات
      متفاوتی در این Page مطرح شده که پاسخگویی به آنها مستلزم زمان است و ممکن
      است قدری پراکنده گویی هم در جملات من وجود داشته باشد به همین جهت از
      همگی عذرخواهی می کنم.
      مسعود جان، اراکل و یا هر DBMS دیگری که ادعای
      کارکردن با اطلاعاتی در حد گیگا بایت و یا ترابایت دارد هیچگاه کل DB را به
      حافظه نمی آورد بلکه همانگونه که خود شما اشاره داشتید Hot Page را به RAM
      می اورد.تا آن حد که من می دانم آلگوریتم بیشتر DBMSها نیز MRU است(Most Recently Used).
      مهمترین
      ویژگی Memory Optimized Table  این است که اطلاعات آن در RAM حفظ می شوند و
      این درحالی است که اراکل چندین سال قبل مکانیزم Keep Pool را معرفی کرد که
      به شکل مشابه سبب حفظ شدن اطلاعات جداول و یا اندکس ها در می شود:
      http://www.acehints.com/2012/04/advantage-of-caching-pinning-keeping.html
      بعدها  اراکل مکانیزمهایی نظیر Timetens معرفی کرد.
      بعلاوه
      Lock Free بودن Memory Optimized Table سبب سرعت بالاتر نمی شود بلکه به
      دلیل باقی ماندن اطلاعات این جداول در RAM است که سرعت بالاتر دارند.لطفا
      لینک زیر را ببینید تا مشخص شود Lock Free به معنای optimistic locking
      است.البته مطمئنا ماکروسافت در عملکرد آن اصلاحاتی انجام داده است:
      http://sqlmag.com/sql-server-2014/application-performance-inmemory-oltp-database-engine

      اگر
      بخواهم به سوال “آیا دوران پادشاهی اوراکل در حوزه ی مدیریت پایگاه داده
      های عملیاتی به پایان رسیده است؟” پاسخ بدهم جواب من “خیر” است. من نیز
      همانند یکی از دوستانمان امکان استفاده از زبان جاوا در اراکل را یک مزیت
      بزرگ به حساب می آورم.فراموش نکنید برای استفاده از ویژگی CLR لازم است یک
      DLL در Sql Server رجیستر شود.حال آیا هر یک از شما به عنوان مسئول امنیت
      یک سازمان حاضر هستید DLL تولید شده توسط هر فردی را در بانک اطلاعاتی خود
      رجیستر کنید؟ اراکل دارای Self Tuning است و این به معنای آن است که بر حسب
      شرایط می تواند خود را به گونه ای تنظیم کند که بالاترین کارایی را داشته
      باشد. در حال حاضر Sql Server فاقد این ویژگی است.

      درست است که
      شرکتهایی نظیر BWIN توانسته اند به بهترین نحو ممکن به درخواستها پاسخ دهند
      اما این مطلب به معنای این نیست که فقط و فقط Memory Optimized Table این
      امکان را برای آنها فراهم کرده است بلکه طراحی،برنامه نویسی، عملکرد عالی
      شبکه و عملکرد عالی سیستم عامل نیز در کنار بانک اطلاعاتی این امکان را
      برای آنها فراهم کرده است (به دلیل اصلاحاتی که Memory Optimized Table در
      نسخه بعدی Sql انجام می شود بعید نیست
      طراحی و برنامه نویسی این شرکت
      نیز دستخوش تغییر شود).بدیهی است عملکرد بد سیستم عامل، تاثیر زیادی بر
      عملکرد بانک اطلاعاتی دارد. در طی مدتی که من مطالب آقای طاهری را دنبال می
      کنم هیچگاه ندیدم که ایشان به بررسی سیستم عامل بپردازند.پس به این بهانه
      از ایشان خواهش می کنم به این نکته نیز اشاره کنند که سیستم عامل مناسب Sql
      Server باید چه ویژگی هایی داشته باشد( به عنوان مثال نوع RAID، میزان RAM
      اختصاص یافته و …) و چگونه می توان متوجه شد که سیستم عامل عملکرد مناسبی ندارد.

      برای آنکه مطلب بیش از این طولانی نشود به همین جا ختم می کنم اما مطمئنا بحثی مثل Tuning یک دنیا مطلب دارد و نمی توان در چند خط همه چیز را بیان کرد.

      شاد و پیروز باشید

      • ممنون از مطالب مفیدتان.

        شخصا هر موقع بحث مقایسه دو پایگاه داده پیش میاد این لینک رو توصیه می کنم:
        •     سعید جان سلام مقایسه برای سال ۲۰۱۱ است 

          قابلیت های جدید را در نظر بگیرید وجود قابلیت های جدید باعث شده که گارنتر SQL Server را به عنوان رهبر DBMS و BI انتخاب کند.
هر روز یک ایمیل، هر روز یک درس
آموزش SQL Server بصورت رایگان
همین حالا فرم زیر را تکمیل کنید
دانلود رایگان جلسه اول
نیک آموز علاوه بر آموزش، پروژه‌های بزرگ در حوزه هوش تجاری و دیتا انجام می‌دهد.
close-link
close-image