ورود

View Full Version : بهینه سازی کوئری من



Site Admin
دوشنبه 19 دی 1401, 19:16 عصر
با سلام دوستان گرامی کسی میتونه لطف کنه روشی برای بهینه کردن این کوئری ارائه کنه
تا سرعت اجراش بیشتر بشه


select f1,select sum(sf_count) from tbl_fact_1401 left join tbl_sub_fact_1401 on
tbl_fact_1401.f_id = tbl_sub_fact_1401.sf_f_id
where tbl_sub_fact_1401.sf_o_code = 3 and tbl_sub_fact_1401.sf_detail like
'%' + f1+ ' /' + '%' + f1 and f_del = 0 and f_sales = 1 and
f_date between '1401/10/17' and '1401/10/17'
این کوئری در یک select تو در تو اجرا میشه

pe32_64
جمعه 23 دی 1401, 13:20 عصر
با سلام دوستان گرامی کسی میتونه لطف کنه روشی برای بهینه کردن این کوئری ارائه کنه
تا سرعت اجراش بیشتر بشه


select f1,select sum(sf_count) from tbl_fact_1401 left join tbl_sub_fact_1401 on
tbl_fact_1401.f_id = tbl_sub_fact_1401.sf_f_id
where tbl_sub_fact_1401.sf_o_code = 3 and tbl_sub_fact_1401.sf_detail like
'%' + f1+ ' /' + '%' + f1 and f_del = 0 and f_sales = 1 and
f_date between '1401/10/17' and '1401/10/17'
این کوئری در یک select تو در تو اجرا میشه
درود
مشکل اساسی این کوئری اون like هستش که نباید با % شروع بشه . کلا این طراحی ایراد داره چون مانع استفاده از ایندکس برا column میشه .
(tbl_sub_fact_1401.sf_detail)
برا % اول سعی کنبد مقدار پیش فرضی وجود داشته باشه .
مثال:
tbl_sub_fact_1401.sf_detail like 'prs[_]grp[_]%'

Site Admin
سه شنبه 27 دی 1401, 15:57 عصر
دم شما گرم خیلی بهتر شد سرعت اجرا بالا تر رفت