PDA

View Full Version : راهکارهایی برای سرعت بیشتر در جستجوی بانک بزرگ



bozhmehrani
یک شنبه 07 اسفند 1390, 06:23 صبح
سلام دوستان من میخواهم یه بانک طراحی کنم که حدس میزنم یک جدولش رکورد بسیار زیادی در آن وارد شود.
بالای 2 میلیون رکورد.
حالا چه راهکارهایی پیشنهاد می کنین که عمل جستجو در آن سریعتر انجام گردد.
چون این برنامه قراره در اینترنت استفاده بشه سرعت بسیار مهمه.
ممنو میشم راه کاراتونو ساده بنویسید.

baktash.n81@gmail.com
یک شنبه 07 اسفند 1390, 07:51 صبح
سلام ...

خیلی مهمه که index ها مناسب انتخاب بشند ... خیلی مهم ...

استفاده از Partition ها هم خیلی تاثیر گذاره ... اگه تازه دارید جداول رو طراحی می کنید هم از Table Partition استفاده کنید هم Index ها رو Particion کنید ... استفاده از file group ها ... و قرار دادن file group ها مختلف روی دیسک ها مختلف اگه سرورتون Raid بندی شده ...

و نوشتن Query های بهینه ...

bozhmehrani
یک شنبه 07 اسفند 1390, 22:38 عصر
تشکر تشکر
از این مورادی که اشاره کردید فقط با ایندکس ها یذره آشنا هستم .
میشه یه توضیح کوچلو در موردشون بدی .
در مورد کویری بهینه - کویری ها طوری که من پیش بینی کردم نمیشه از قبل نوشته بشه بلکه باید به صورت پویا همون لحظه ایجاد بشه چه کویری بهینه است.؟ استفاده کردن از join ,... نسبت به کویری های تو در تو منظورتونه؟

sadaf_
دوشنبه 08 اسفند 1390, 09:33 صبح
سلام ...

خیلی مهمه که index ها مناسب انتخاب بشند ... خیلی مهم ...

استفاده از Partition ها هم خیلی تاثیر گذاره ... اگه تازه دارید جداول رو طراحی می کنید هم از Table Partition استفاده کنید هم Index ها رو Particion کنید ... استفاده از file group ها ... و قرار دادن file group ها مختلف روی دیسک ها مختلف اگه سرورتون Raid بندی شده ...

و نوشتن Query های بهینه ...

لطفا در این موارد توضحات بیشتری بدین
Partition و file group و Raid و ...
ممنون

baktash.n81@gmail.com
دوشنبه 08 اسفند 1390, 15:53 عصر
خوب ... در خصوص Partition باید بگم که ما دوجور پارتیشن بندی داریم تو بانکهای رابطه ایی ... عمودی و افقی ... پارتیشن بندی افقی که تو MSSql پشتیبانی می شه به اینصورت عمل می کنه که شما مشخص می کنی تعداد مشخصی رکورد درون یک پارتیشن قرار بگیرند مثلا اگه فیلد Identity دارید 1تا 100 درون یک پارتیشن و 101 تا 200 درون پارتیشن یا قسمت بعد و الی آخر ... وقتی که می خواین Query بزنید به شرطی که تو شرط ها از همون فیلدی که بر اساسش پارتیشن کردید استفاده کنید اونوقت SQL فقط با همون قسمت ازرکوردها کار می کنه ... جستجوی سریعتر و مخصوصا Join های سریعتر ... از SQL 2008 به بعد این پارتیشن بندی رو می تونید روی index ها هم انجام بدید ... این یه سرنخ کلی بود بیشتر تحقیق کنید ...

bozhmehrani
دوشنبه 08 اسفند 1390, 22:50 عصر
ممنون ، منتظر نظرات دیگر کارشناسان هستیم.
الان موتور جستجوی گوگل از چه تکنیک ها و الگوریتم هایی برای سرعت بخشیدن جستجو استفاده میکنه؟