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

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

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

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

البته باید اذعان داشت که SQL Server محبوبترین پایگاه داده در بین ایرانیان نیز است.

sql-server-oracle

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

آموزش در مورد یک نکته بسیار ظریف و مهم درباره افزایش سرعت و کارایی بانک اطلاعاتی است

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

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

یک فیلد با (۵)Char عبارت است از : با توجه به طول رشته حافظه تخصیص یافته ۵ بایت می‌باشد. چه مقدار شما ۱ کارکتر باشد و چه ۵ کارکتر

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

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

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

خوب این چیزی بود که همگی از آن اطلاع داریم

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

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

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

۲- حمید صادق

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

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

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

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

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

اولین نفر باش

title sign
معرفی نویسنده
فرید طاهری
مقالات
6 مقاله توسط این نویسنده
محصولات
8 دوره توسط این نویسنده
فرید طاهری

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

پروفایل نویسنده
title sign
دیدگاه کاربران

    • با سلام
      با sql server کار می کردم و می کنم و خواهم کرد…
      عاشق قابلیت Columnstore ایندکس در SQL 2016 به همراه  Memory Optimized
      Table هستم که تا بی نهایت سرعت رو به اوج می رسونه!

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

      ۱۹۸۹ کجا و ۱۹۸۰ کجا !؟!

      حالا – یعنی از ۲۰۱۴ – اس کیو ال با تکنولوژی هاش تازه جون گرفته.

      اینا به کنار سهولت کار با محصولات مایکروسافتی کجا و … بی خیال

      فقط امیدوارم زمانی که با اوراکل کار می کنین دیگه حداقل در ویندوز مایکروسافت نباشین (شوخی بود)

      و در پایان تشکر از تیم نیک آموز به رهبری جناب طاهری

    • با سلام
      با sql server کار می کردم و می کنم و خواهم کرد…
      عاشق قابلیت Columnstore ایندکس در SQL 2016 به همراه  Memory Optimized
      Table هستم که تا بی نهایت سرعت رو به اوج می رسونه!

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

      ۱۹۸۹ کجا و ۱۹۸۰ کجا !؟!

      حالا – یعنی از ۲۰۱۴ – اس کیو ال با تکنولوژی هاش تازه جون گرفته.

      اینا به کنار سهولت کار با محصولات مایکروسافتی کجا و … بی خیال

      فقط امیدوارم زمانی که با اوراکل کار می کنین دیگه حداقل در ویندوز مایکروسافت نباشین (شوخی بود)

      و در پایان تشکر از تیم نیک آموز به رهبری جناب طاهری

    • جناب آقای طاهری با تشکر از توجه شما،

      سوالی داشتم که ایا موارد زیر (که تقریبا در اکثر نسخه های اوراکل Native می باشند)  در نسخه های جدیذ Sql Server اضافه شده اند:
      – امکان وب سرویس داخلی و بومی دیتابیس از Package ها
      – امکان ذخیره json به عنوان نوع داده و البته کوری اسان در دیتابیس از همان نوع داده بدون پردازش اضافی
      – امکان Plagable بودن دیتابیس های مختلف
      – لاگ برداری از همه کوری های اجرا شده در پایگاه داده و تجزیه تحلیل و Tune اتوماتیک توصیه شده
      – امکانات مقیاس پذیری پایگاه داده
      – استفاده از زبان برنامه نویسی جاوا در پایگاه داده
      – امکان تعریف ابجکت های مختلف پایگاه داده در حافظه جهت دسرسی سریع در همه سطوح (جدول، ویو، فضای جدولی و …)
      – …
      ضمنا Oracle Application Express یا Apex نسخه ۵ با معماری MVC که کاربر بدون داشتن کمترین تجربه کدنویسی در سطح اپلیکیشن (نه کوری و پایگاه داده) می تواند برنامه های سطح وب و موبایل فوق العاده حرفه ای در سریع ترین زمان ممکن ارایه دهد که از امکانات داخلی پایگاه داده است. 
      • سلام 

        قبول تمام این موارد تازه اضافه شد.
        اما Ranking چی بعد از چند سال جابجا شد. (این نکته مهم )
        – امکان وب سرویس داخلی و بومی دیتابیس از Package ها
        این مورد در نسخه ۲۰۰۸ وجود داشته اما توصیه میشه از VS و WCF استفاده کنید.
        قدرت اون در حدی است که Nasdaq + BWIN داره باهاش کار می کنه و حجم زیادی درخواست را کمترین هزینه جواب میده
        – امکان ذخیره json به عنوان نوع داده و البته کوری اسان در دیتابیس از همان نوع داده بدون پردازش اضافی
        در ۲۰۱۶  اضافه شده و قبل از اون XML در ۲۰۰۵ وجود داشته. فکر می کنید چقدر از پروژه ها به سمت JSON میره هر نوع Engine باشه (چه اوراکل یا SQL) و با هر تکنولوژی کار کنه ذخیره + ایندکس گذاری و… این داده ها دارای چالش بزرگی در RDBMS ها است. فرض کن تراکنش های بانکی یک بانک به فرمت JSON در اوراکل ذخیره بشه (RDBMS) به نظر شما آیا با اعمال بهترین ایندکس ها باز هم سرعت اون به انداز سایر حالت های ذخیره سازی است (Row Based + Columnstore)
        مثال ۱۰ میلیارد رکورد در Columnstore ذخیره بشه و همون حالت را JSON کنید.
        – لاگ برداری از همه کوری های اجرا شده در پایگاه داده و تجزیه تحلیل و Tune اتوماتیک توصیه شده
        SQL برای انجام اینکار کلی DMF و DMV داره که از نسخه ۲۰۰۵ اضافه شده حالا چند سالی است که اون ها را ویژوالی کرده وگرنه از قبل وجود داشته و با Command کلی کار می شد انجام دارد
        Extended Event + Trace File + DMV+ DMF +System SP + Audit Log و….
        – امکانات مقیاس پذیری پایگاه داده
        Always ON + PDW +SQL Azure
        – استفاده از زبان برنامه نویسی جاوا در پایگاه داده
        استفاده از CLR در SQL Server
        – امکان تعریف ابجکت های مختلف پایگاه داده در حافظه جهت دسرسی سریع در همه سطوح (جدول، ویو، فضای جدولی و …)
        اجازه بدین در فیلم دوم بررسی کنیم
        و کلی قابلیت دیگه که در Feature Packها وجود داردمثل 
        External Activation SSSB
        Stream Insight
        و…
        در حوزه BI + DW واقعا حرف اول را می زنه (آمار گارتنر + TPC)
        SSIS
        SSAS (Multi Dimensional , Tabular Model)
        SSRS
        Power BI
        و…
        آینده خیلی مهم است. مطمئن باشید اوراکل هم بیکار نخواهد نشست چون برای اون RANK مربوط به TPC و گارتنر مهم است. هر دو محصول در حال اضافه کردن قابلیت های جدید هستند
    •   با سلام
      حمید صادق هستم
      یک نرم افزار تولیدی بر اساس sql server نوشتم که به زودی وارد بازار فروش می شود می خواهم قبل از ورود برنامه به بازار،دیتابیس برنامه را به نسخه sql server 2016 ارتقا بدهم تا از امکانات جدید آن استفاده کنم چون با توجه به پیچیدگی نحوه کار برنامه دیتابیس برنامه برای کاربر نهایی حجم بزرگی را خواهد داشت و سرعت و میزان حجم دیتابیس مهم است.
      یک سوال هم داشتم که ممنون می شوم راهنمایی بفرمایید:
      در حال حاظر من از نسخه کرک شده sql استفاده می کنم و می خواهم برای نسخه نهایی از لایسنس اصلی استفاده کنم آیا می توانم با خرید یک لایسنس همان نسخه را برای مشتریان استفاده کنم یا باید برای هر مشتری از یک لایسنس جداگانه استفاده کرد؟
      از آموزشهای خوب شما متشکرم و امیدوارم بتوانم از آموزشهای شما در بهتر شدن برنامه استفاده کنم

    • سعید جان قضاوت ما سطحی نیست

      بر اساس آمار گارتنر + TPC 
      اونها بهترین در دنیا هستن همه چیز را در نظر می گیرند تعداد  کاربر استفاده کننده + قیمت و از همه مهمتر قابلیت ها + کارایی
      بهتر اعتبار آمار این دو سازمان را زیر سوال نبریم سازمان های بزرگ و معتبر.
      باور این موضوع برای خیلی ها سخت است اما واقعیت تلخ است.
      گذر زمان همه چیز را نشان خواهد داد. 
      موفق باشید
    • با سلام،

      این که SQL Server در بسیاری از موسسات و (از جمله در ایران) و انهم بدلیل این که محصول مایکروسافت است استفاده می شود، دلیل بر پیشی گرفتن از سایر پایگاه داده ها نمی شود.
      قضاوت در این مورد و عنوان “پیشی گرفت” بسیار سطحی است.
      بهتر است مشتریان Oracle و SQL Server را هم مقایسه کرد. بسیاری از شرکت های معروف و بزرگ مخابراتی، ارتباطی و … چاره ای جز استفاده از محصولات اوراکل را ندارند. SQL Server بیشتر در سازمان های متوسط کارایی دارد. و بدلیل تعداد زیاد این سازمان ها محصول پرفروشی است…
      • طبق اخباری که در سایت هایی نظیر tpc و … منتشر میشه اکثر شرکت ها یا از sql استفاده می کنند یا دارن از اوراکل به سمت sql server مهاجرت میکنند و کردند
        همچنین بد نیست نگاهی به بزرگترین دیتابیس های جهان بندازیم که چندتای اول به خوبی به یاد دارم از sql server استفاده میکردند
        در صد جدول ناسا قرار داره

    •    جناب آقای علی یگانه مقدم

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

      با تشکر

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

    •    جناب آقای علی یگانه مقدم

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

      با تشکر

    •  علی نبی خانی
      طراح و پشتیبان  sqlserverهستم
      بیشتر هم از این موارد استفاده میکنم:
      Compression
      always on
      Partitioning

    •  یک سوال از استاد طاهری داشتم. علت اینکه SqlServer یک Offset دو بایتی برای نوع داده های Variable در نظر می گیره چیه؟

      •     برای مشخص شدن محل دیتا برای هر دیتا تایپ Variable Length این ۲ بایت در نظر می شود.

        دیتا Variable Length شما از چه آدرسی تا چه آدرسی در Page ذخیره شده. البته این آفست محل پایان را مشخص می کند.
        چون دیتا تایپ های Variable Length کنار هم ذخیره می شوند ابتدا این آفست های ۲ بایتی به ازای هر فیلد ایجاد میشه که محل پایان مقادیر فیلد را مشخص می کنه و بعدش خود مقادیر فیلدها نمایش داده می شود. البته من خیلی از این مبحث Internal را خلاصه گفتم
هر روز یک ایمیل، هر روز یک درس
آموزش SQL Server بصورت رایگان
همین حالا فرم زیر را تکمیل کنید
دانلود رایگان جلسه اول
نیک آموز علاوه بر آموزش، پروژه‌های بزرگ در حوزه هوش تجاری و دیتا انجام می‌دهد.
close-link