نمایش نتایج 1 تا 8 از 8

نام تاپیک: بهترین راه برای نوشتن کوئری رو داده های خیلی زیاد

  1. #1

    بهترین راه برای نوشتن کوئری رو داده های خیلی زیاد

    با سلام خدمت تمام دوستان عزیز
    ما یک بانک اطلاعاتی خیلی بزرگ داریم که توی یکی از تیبل های اون حدود 40میلیون رکورد تو گام اول درج شده و این تا حدود 150 میلیون رکورد هم میرسه
    حالا ما وقتی که میخواییم روی این تیبل کوئری بنویسیم زمان زیادی طول می کشه تا داده های مورد نیاز رو بدست بیاریم
    مثلا یک Count گرفتن حدود 36 ثانیه زمان میبره و یا یک سلکت رو کل داده ها زدیم در حدود 8.30 دقیقه طول کشید که خیلی زمان زیادیه
    میخواستم بدونم که بهترین راه ها برای بالا بردن سرعت دریافت اطاعات از این حجم اطلاعات چیه
    با تشکر


    استخدام برنامه نویس دات نت (Asp.net,C#‎‎‎‎,jquery,...)
    ترجیحا خراسان شمالی ، بجنورد
    به صورت پاره وقت و تمام وقت

    ارسال اطلاعات و رزومه کاری به Job@tosa.ir

  2. #2
    کاربر دائمی آواتار lastmory
    تاریخ عضویت
    مرداد 1389
    محل زندگی
    تهران
    سن
    37
    پست
    221

    نقل قول: بهترین راه برای نوشتن کوئری رو داده های خیلی زیاد

    یکی از راهها Index گذاری هستش

    اما واقعا احتیاج داری به نشون دادن 150 میلیون رکورد؟؟؟

  3. #3

    نقل قول: بهترین راه برای نوشتن کوئری رو داده های خیلی زیاد

    با سلام و تشکر دوست من
    یکی از راهها Index گذاری هستش
    میشه یکم بیشتر در این مورد برام توضیح بدید
    اما واقعا احتیاج داری به نشون دادن 150 میلیون رکورد؟؟؟
    نه لزوما همه داده ها رو
    اما ممکنه که چند ده میلیون از این داده ها نیاز باشه که نمایش داده بشه و یا اینکه ازشون گزارش تهیه بشه.
    با تشکر


    استخدام برنامه نویس دات نت (Asp.net,C#‎‎‎‎,jquery,...)
    ترجیحا خراسان شمالی ، بجنورد
    به صورت پاره وقت و تمام وقت

    ارسال اطلاعات و رزومه کاری به Job@tosa.ir

  4. #4
    کاربر دائمی آواتار علیرضا حسن زاده
    تاریخ عضویت
    تیر 1388
    محل زندگی
    تــــــــــــــــــــــــــبریز
    پست
    897

    نقل قول: بهترین راه برای نوشتن کوئری رو داده های خیلی زیاد

    بهترین راه برای نوشتن کوئری رو داده های خیلی زیاد
    فکر نمی کنم ربطی به نوع کوئری گرفتن داشته باشه(البته در حالت هایی که گفتین) برای افزایش کارایی باید از روشهایی استفاده کنید که Performance دیتابیس بالا بره ضمنا برای این حجم اوراکل مناسب تره (شاید هم از اوراکل استفاده می کنید)
    و صد التبه سخت افزار سیستم بخصوص سرعت و اندازه رم + سرعت هارد دیسک هم در افزایش سرعت برای چنین مواقعی خیلی چشمگیر هست
    اگر داده هاتون زود به زود Insert یا Update نمیشن استفاده از نماهای ایندکس شده هم افزایش سرعت چشمگیری خواهد داشت(االبته نماهای ایندکس شده تو SqlServer نمی تونن از جداول Join شده استفاده کنن یعنی اگه تو عبارت SQLتون از Join استفاده کرده باشین حالت Index نما از بین میره و نمیشه Index گذاری بشه )

  5. #5

    نقل قول: بهترین راه برای نوشتن کوئری رو داده های خیلی زیاد

    سلام

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

    در موردش مقداری جستجو کنید ... اگه سئوالی بود بپرسید ...

    اما شما نیاز دارید که اطلاعات بر اساس مقدار یک فیلد (فیلدی که معمولا در شرط Select استفاده می کنید) تیکه تیکه بشه ... مثلا اگه روی جدولتون فیلد تاریخ دارید ... فرض کنید اطلاعات مربوط به هر سال داخل یک پارتیشن قرار می گیره و وقتی شما توی Select یک تاریخ رو ذکر می کنه SQL مستقیم میره سراغ همون پارتیشن و با بقیه رکورد ها کاری نداره ... در نتیجه سرعتتون بیشتر می شه ....

  6. #6
    کاربر دائمی آواتار p.yazdkhasti
    تاریخ عضویت
    فروردین 1391
    محل زندگی
    http://devnet.ir
    پست
    121

    نقل قول: بهترین راه برای نوشتن کوئری رو داده های خیلی زیاد

    سلام
    در صورتی که درست متوجه شده باشم شما از این اطلاعات بیشتر برای گزارش گیری استفاده می کنید و حجم به روز رسانی در Table ذکر شده زیاد نمی باشد. من با راه حل ارائه شده در پست قبلی موافقم ولی راه حل اصلی شما ساخت یک Data Warehouse از اطلاعات موجود در این پایگاه داده (ها) و سپس ساخت Cube ها به منظور گزارش گیری می باشد. در محیط های مشابه شما برای گزارش گیری با حجم داده های بسیار بیشتر از این راه حل استفاده می شود زیرا همان طور که می دانید پایگاه داده رابطه ای برای انجام عملیات CRUD با حجم کم و تعداد بالا می باشد و برای گزارش کیری در حجم اطلاعات زیاد بهینه نشده است. به منظور بررسی بیشتر مطالب مرتبط با Analysis Services را مطالعه نمایید.

  7. #7

    نقل قول: بهترین راه برای نوشتن کوئری رو داده های خیلی زیاد

    نقل قول نوشته شده توسط p.yazdkhasti مشاهده تاپیک
    سلام
    در صورتی که درست متوجه شده باشم شما از این اطلاعات بیشتر برای گزارش گیری استفاده می کنید و حجم به روز رسانی در Table ذکر شده زیاد نمی باشد. من با راه حل ارائه شده در پست قبلی موافقم ولی راه حل اصلی شما ساخت یک Data Warehouse از اطلاعات موجود در این پایگاه داده (ها) و سپس ساخت Cube ها به منظور گزارش گیری می باشد. در محیط های مشابه شما برای گزارش گیری با حجم داده های بسیار بیشتر از این راه حل استفاده می شود زیرا همان طور که می دانید پایگاه داده رابطه ای برای انجام عملیات CRUD با حجم کم و تعداد بالا می باشد و برای گزارش کیری در حجم اطلاعات زیاد بهینه نشده است. به منظور بررسی بیشتر مطالب مرتبط با Analysis Services را مطالعه نمایید.
    با سلام
    ممنون بابت جوابتون دوست عزیز
    کاملا درست فرمودید اینجا هدف گزارش گیری از این اطلاعاته و به روز رسانی زیادی روی این اطلاعات نداریم. ممنون میشم برای این مباحثی که فرمودید منابع هم معرفی کنید به بنده
    با تشکر


    استخدام برنامه نویس دات نت (Asp.net,C#‎‎‎‎,jquery,...)
    ترجیحا خراسان شمالی ، بجنورد
    به صورت پاره وقت و تمام وقت

    ارسال اطلاعات و رزومه کاری به Job@tosa.ir

  8. #8

    نقل قول: بهترین راه برای نوشتن کوئری رو داده های خیلی زیاد

    مباحثی که دوستمون گفت مربوط BI می شه ... می تونید این کتاب رو مطالعه کنید .

    Smart Business Intelligence Solutions with Microsoft SQL Server 2008

قوانین ایجاد تاپیک در تالار

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