تبلیغات :
آکوستیک ، فوم شانه تخم مرغی، صداگیر ماینر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 2 از 2

نام تاپيک: استفاده از بانک داده در برنامه چقدر از فضای حافظه رو اشغال میکنه؟

  1. #1
    کـاربـر بـاسـابـقـه am_merman01's Avatar
    تاريخ عضويت
    May 2006
    محل سكونت
    یه جایی گوشه دهکده جهانی تو یه کانکشن دایال آپ
    پست ها
    893

    پيش فرض استفاده از بانک داده در برنامه چقدر از فضای حافظه رو اشغال میکنه؟

    سلام خدمت دوستان عزیز
    من از vs2010 استفاده میکنم. میخواستم بدونم وقتی یک دیتاست توی برنامه بوجود میارم و چند تا جدول توش تعریف میکنم ، این جداول بر روی کدام حافظه قرار میگیرن؟(رم یا هارد درایو؟)
    اگه بعد از یک مدت حجم داده های موجود در بانک خیلی زیاد بشه مشکلی برای لود شدن برنامه بوجود نمیاد؟
    اینکه من چندتا دیتاست داشته باشم در کاهش فضای اشغال شده کمکی میکنه یا اینکه همشون به طور همزمان توسط بانک داده پر میشن؟(مثلا ۵۰ تا جدول موجود در بانک داده رو توی ۵ تا دیتاست قرار بدم)
    استفاده از linq2sql و یا entityframwork.net میتونه به بهینه شدن حجم اشغال شده کمکی بکنه یا تاثیری نداره؟
    پیشاپیش از کمکتون تشکر میشه

  2. #2
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    اول)
    اصولا بخشی از نرم افزارهای دیتابیس مدیریت همین HDD و RAM است.
    شما میتوانید بیشتر نگرانی در مورد این مطالب را به SQLServer و Oracle و PostgreSQL و... بسپارید.
    برنامه های مدیریت دیتابیس اطلاعات را در هارد نگاه داشته و از حافظه های مجازی نگاشت شده روی هارد استفاده میکند و RAM را برای دیتاهای جاری در حال کار مدیریت میکند.
    پس بخشی از نگرانی تان را به عهده شرکت های تولید کننده دیتابیس ها بگذارید!

    ==============

    دوم) آنکه به عنوان مدیر IT یا DBA و ... باید مشخصات سرور های شما (CPU/HDD/RAM و...) با نیاز تان (حجم اطلاعات، تعداد تراکنش ها، تعداد کاربران آنلاین و...) مطابقتی داشته باشد

    اینکه جداول را در دیتابیس های مختلف قرار دهید و... چیزهایی شبیه این فایده ای نداردف تازه از نظر تئوری یک دیتابیس باشد بهتر هم خواهد بود.

    بجای آن استفاده صحیح از دیتابیس های "نرمال" سازی شده، کلید های عددی Auto-Number ... استفاده بجا و صحیح از Index ها و Trigger ها ... تبدیل query های پر مصرف به View و Procedure و... تاثیر بسیار زیادی میتواند داشته باشد.

    ==============

    سوم) آنکه به عنوان یک برنامه نویس، برنامه را به طرز مناسبی و صحیحی بنویسید وتولید کنید.

    برنامه نویسی قطعا وبدون شک تاثیر دارد.
    عدم واکشی کل اطلاعات در برنامه و اعمال فیلتر به اطلاعات درون برنامه...
    یعنی تا حد ممکن سطر ها را با Where های SQL ای کم کنید و ستون ها را با Select های SQL کاهش دهید تا حجم اطلاعات کمتری بین دیتابیس و برنامه شما ، سریالی و دی-سریالی و دانلود و بارگذاری و... شود.
    اطلاعات را صفحه بندی شده نشان دهید...

    از کش های سمت دیتابیس و RAM بجا استفاده کنید.
    گاهی اوقات کش کردن 1MB اطلاعات میتواند از واکشی های مکرر 1GB اطلاعات (وبیشتر) جلوگیری کند...
    یا میتوانید خروجی primarykey های پرس و جوهای سنگین ناشی از جستجو را کش کنید....
    از تکنیک های بارگذاری تنبل (Lazy) استفاده کنید...

    در زمان Update روی جداولی با ستون های زیاد میتوانید فقط یکی دو ستون تغییر کرده را بروز رسانی کنید، این هم در سرعت تاثیر دارد و هم مشکلات و تداخلات همزمانی تراکنش ها را کاهش میدهد.

    اگر با علم و به طرز مناسب از EF یا EFCore استفاده کنید و بجای query های پیچیده سمت برنامه از View های سمت دیتابیس استفاده کنید و... و... میتوانید به بازدهی خوبی برسید، یعنی خوشبختانه EF و EFCore ظرفیت و انعطاف پذیری لازم را دارند.

    موفق باشید.
    Last edited by _H2_; 31-05-2017 at 08:11.

  3. 2 کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده اند


Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •