عنوان:

‫برای اضافه کردن قابلیت جداول in-memory به EF رای دهید


نویسنده: علی یگانه مقدم
تاریخ: ۱۳۹۴/۰۴/۰۵ ۲۰:۴۱
آدرس: www.dntips.ir

 یکی از امکاناتی که از sql server 2014  اضافه کرد قابلیت جداول in-memory است که باعث افزایش سرعت جداول میشود. شرکت هایی که دارای تراکنش‌های بالایی در دیتابیس هایشان هستند از این قابلیت استفاده می‌کنند. شرکت بی وین در ابتدای ورژن 2014 اعلام کرد که با استفاده از این ویژگی تعداد درخواست هایی که پاسخ میدهند از 15 هزار درخواست در ثانیه به 250 هزار درخواست در ثانیه رسیده است.



مشاهده مطلب اصلی

نظرات

  • سید رئوف مدرسی در ۱۳۹۴/۰۴/۰۶ ۲:۱۴
    این مسئله بصورت اتومات توسط SQL هندل می‌شود یا نیاز به تنظیمات خاصی دارد
    • علی یگانه مقدم در ۱۳۹۴/۰۴/۰۶ ۲:۳۵
      هنگام ساخت جدول باید ویژگی memoptimize روشن گردد
      البته در حال حاضر میتوان با روش ارسال کوئری در EF این موضوع رو هندل کرد ولی با این شیوه بسیاری از قابلیت‌های OOP هدف اصلی هر ORM را از دست خواهیم داد.
      البته خیلی هم به آن مثل جدول‌های عادی نگاه نکنید بهتر هست یک دید هم به مقاله موجود در سایت جاری که در متن پست لینک شده است هم نگاهی بیندازید. جداول این روش به dll کمپایل میشن و قابل ساختاربندی مجدد رو ندارند مگر اینکه جدول رو حذف و از سر بسازید.چون این جداول نیاز به سرعت بالا رو تامین میکنند و از io زدن روی دیسک به شدت اجتناب می‌کنند
      همچنین قابلیت column store index هم نباید نادیده گرفت. شنیدم (ندیدم) در فیلمی که مایکروسافت منتشر کرده بود دیتابیسی با 60 میلیارد رکورد در حالت عادی با یک کوئری 120 ثانیه زمان برد ولی بعدا همان دیتابیس اینبار با column store index برای اولین بار 8 ثانیه و برای دفعات بعدی 5 ثانیه شد.
    • علی یگانه مقدم در ۱۳۹۴/۰۴/۱۰ ۱:۲۹
      یک نکته تکمیلی؛ در نسخه mssql2016 قابلیت دیزاین این نوع جداول اضافه شده است که تا قبل از این فقط کوئری میتوانست ایجاد کند.
  • سعید صالحی در ۱۳۹۴/۰۴/۰۶ ۱۰:۳
    ظاهرا این درخواست قبلا وجود داشته
    و تو نسخه EF7 برای تست اضافه شده
    • دادگر در ۱۳۹۴/۰۴/۱۰ ۳:۵۷
      موضوعی شما می‌فرمایید با موضوع این درخواست جدید فرق می‌کند. موضوع مورد نظر شما یک پروایدر مجزا داخل رم برای تست و... است و موضوع این درخواست قابلیت استفاده از نوع جدید جدول (مقیم حافظه) در sql است.