PDA

View Full Version : ایندکس مناسب برای SQL Server 2000



A.Farzin
یک شنبه 27 خرداد 1386, 19:00 عصر
با سلام

برای کوئری زیر چه ایندکسی مناسبت خواهد بود


SELECT EntryDate, EntryNum, Discription, Debit, Credit, NoteRVW, Total, Sub1, Sub2, Sub3, Sub4, Sub5, Sub6, Sub7, Sub8, Sub9, RTotal, RSub1, RSub2, RSub3, RSub4, RSub5, RSub6, RSub7, RSub8, RSub9, SaleProjectID, FinEventTyp, FinEventNo, RVW0, UserIDR0, DateR0, RVW1, UserIDR1, DateR1, RVW2, UserIDR2, DateR2, RVW3, UserIDR3, DateR3, RVW4, UserIDR4, DateR4, RVW5, UserIDR5, DateR5, RVW6, UserIDR6, DateR6, RVW7, UserIDR7, DateR7, RVW8, UserIDR8, DateR8, RVW9, UserIDR9, DateR9, EType, Eyear, FinEventDue, TmpTik, RefRecID, RecID
From Transactions
WHERE (Total = 312) AND (Sub1 = 140) AND (Sub2 = 759) AND (Sub3 = 0) AND (Sub4 = 0) AND (Sub5 = 0) AND (Sub6 = 0) AND (Sub7 = 0) AND (Sub8 = 0) AND (Sub9 = 0) AND (EntryDate >= N'1385/01/01' AND EntryDate <= N'1386/03/24') AND (EntryNum >= 1 AND EntryNum <= 99999) AND ((RVW2 = 0 OR RVW2 = 1 OR RVW2 = 3 OR RVW2 = 4 OR RVW2 = 5 OR RVW2 = 7 OR RVW2 = 8 OR RVW2 = 9) AND (RVW2 <> 2 AND RVW2 <> 6))And EType <> N'K'And EType <> N'O'And EType <> N'C'
ORDER BY Total, Sub1, Sub2, Sub3, Sub4, Sub5, Sub6, Sub7, Sub8, Sub9, EntryDate, EntryNum

ممنون

AminSobati
دوشنبه 28 خرداد 1386, 15:39 عصر
چه تعداد رکورد بعنوان نتیجه دریافت میشه؟

A.Farzin
دوشنبه 28 خرداد 1386, 20:53 عصر
با سلام

مقادیر شرط WHERE توسط کاربر تعیین می‌شود و تعداد رکوردهای بازگشتی معمولاً از 0 تا 60000 رکورد متغیر است.
نمونه‌هائی از شروط تعیین شده:

WHERE (Total = 312) AND (Sub1 = 140) AND (Sub2 = 759) AND (Sub3 = 0) AND (Sub4 = 0) AND (Sub5 = 0) AND (Sub6 = 0) AND (Sub7 = 0) AND (Sub8 = 0) AND (Sub9 = 0) AND (EntryDate >= N'1385/01/01' AND EntryDate <= N'1386/03/24') AND (EntryNum >= 1 AND EntryNum <= 99999) AND ((RVW2 = 0 OR RVW2 = 1 OR RVW2 = 3 OR RVW2 = 4 OR RVW2 = 5 OR RVW2 = 7 OR RVW2 = 8 OR RVW2 = 9) AND (RVW2 <> 2 AND RVW2 <> 6))And EType <> N'K'And EType <> N'O'And EType <> N'C'
WHERE (Total = 420) AND (Sub1 = 100) AND (Sub2 = 14) AND (Sub3 = 75258) AND (Sub4 = 11) AND (Sub5 = 0) AND (Sub6 = 0) AND (Sub7 = 0) AND (Sub8 = 0) AND (Sub9 = 0) AND (EntryDate >= N'1385/01/01' AND EntryDate <= N'1385/12/29') AND (EntryNum >= 1 AND EntryNum <= 21742) AND ((RVW2 = 0 OR RVW2 = 1 OR RVW2 = 3 OR RVW2 = 4 OR RVW2 = 5 OR RVW2 = 7 OR RVW2 = 8 OR RVW2 = 9) AND (RVW2 <> 2 AND RVW2 <> 6))And EType <> N'K'And EType <> N'O'And EType <> N'C'
WHERE (Total = 110) AND (Sub1 = 0) AND (Sub2 = 0) AND (Sub3 = 0) AND (Sub4 = 0) AND (Sub5 = 0) AND (Sub6 = 0) AND (Sub7 = 0) AND (Sub8 = 0) AND (Sub9 = 0) AND (EntryDate >= N'1385/06/01' AND EntryDate <= N'1385/12/29') AND (EntryNum >= 32124 AND EntryNum <= 21742) AND ((RVW2 = 0 OR RVW2 = 1 OR RVW2 = 3 OR RVW2 = 4 OR RVW2 = 5 OR RVW2 = 7 OR RVW2 = 8 OR RVW2 = 9) AND (RVW2 <> 2 AND RVW2 <> 6))And EType <> N'K'And EType <> N'O'And EType <> N'C'

در ضمن شایان ذکر است که این مقادیر از جدولی استخراج می‌شود که در حال حاضر حدود 4 میلیون رکورد فقط برای سال 85 دارد. و قرار است سالهای 86 و 87 و ... هم در آینده بدان اضافه شود.
ممنون