سلام دوستان در مورد 1 1 مطالب زیادی تو انجمن هست و منم تا حدودی مطالعه کردم ویکسری 1ات به ذهنم رسیده میخواستم بپرسم از دوستان تا راهنمایی کنن
توی یکی از برنامه هام داده هایی رو که توی گرید ویو فراخوانی میکنم بر اساس سال 1 (مثلا 1396 یا 1395 و ... ) و من یک سری عملیات رو توی کوئری هام انجام دادم مثلا جمع و تفریق روی دو سه تا فیلد جدولم حالا میخواستم ببینم توی این جدول من باید فقط روی فیلد سال مالی ایندکس بزارم کافیه؟ یا اصلا نیازی نیست؟
و یچیز دیگه من عملیات جستجو رو هم با استفاده از قابلیتی که خود گرید ویو DevExpress داره استفاده میکنم و به کوئری و ... هم ربط ندادم تا بره از دیتابیس این جستجو رو انجام بده ازین نظر فکر کنم نیازی به ایندکس گذاری روی فیلد های مثلا نام مشتری و .... نداره چون فقط بر اساس سال مالی از جدول میخونه لود میکنه تو گرید و جستجو از قابلیت خود گرید هست. در این مورد نظرتون چیه؟
و بعضی بخش ها هم سال مالی و یک وضعیت پرداخت (True یا false) و نام روستا و نام واحد چک میشه آیا این بخش هم نیازه به هر 4 فیلد گفته شده ایندکس گذاری بشه یا نه؟ و اینکه این بخش مربوط به یک View ایجاد شده از چند جدول هست
یه نمونه از کوئری من به این شکله
SELECT NameMoshtari, SUM(AbBaha) AS JAbBaha, SUM(Pompax) AS JPompax, SUM(JameKol) AS JJameKol, SUM(COALESCE (MablagPardakhti, 0)) AS JPardakhti,
SUM(JameKol) - SUM(COALESCE (MablagPardakhti, 0)) AS JBagimande, ((CASE WHEN (SUM(JameKol)) = (SUM(COALESCE (MablagPardakhti, 0)))
THEN ('پرداخت شده') WHEN (SUM(JameKol) - SUM(COALESCE (MablagPardakhti, 0)) < 0) THEN ('بستانکار') ELSE ('بدهکار') END)) AS Results
FROM ViewOmorKoliPardakhti WHERE SaleMali = @SaleMali
GROUP BY NameMoshtari
این کوئری هم به صورت بهینه تر چجوری میشه نوشت ؟ که تائثیری در کند شدن نداشته باشه؟
ممنون میشم دوستان در این موارد راهنمایی کنن
برچسب:
نویسنده: خنج
تاريخ: سه
شنبه
5 دی
1396 ساعت: 7:13