אינדקס עבור פעולות Distinct

יום שישי, אוקטובר 11, 2013

כיצד מאנדקסים טבלה עבור פעולת Distinct? ובאותה הזדמנות – מה ההבדל בין Distinct לביצוע Group By? ניצור שתי טבלאות טכניות (אין משמעות עסקית לתוכן) – אחת Heap ואחת עם Index לפי 3 העמודות שב-Distinct / Group By: If Object_ID('T_Messages','U') Is Not Null Drop Table T_Messages;   Select * Into T_Messages From sys.messages;   If Object_ID('T_Messages1','U') Is Not Null Drop Table T_Messages1; ...
אין תגובות

שיפור ביצועי שאילתות על ידי שימוש ב-Group By במקום ב-Join / Exists

יום ראשון, נובמבר 21, 2010

משימה סבוכה עמה התמודדתי לאחרונה: יש טבלה הכוללת סיכומים בפירוט יומי לחשבונות בנק שונים: סה"כ תנועות זכות, סה"כ תנועות חובה, ויתרת סגירה; כל זה כאמור- לגבי כל חשבון לגבי כל יום במהלך השנים האחרונות. טבלה די גדולה. בטבלה יש למצוא את כל החשבונות הרדומים- אלו שבשנה האחרונה לא היו בהם תנועות אבל לפני כן, ולציין מה תאריך התנועה האחרון (אי שם לפני למעלה משנה). שפת SQL היא שפה די אינטואיטיבית למי שמתרגל אליה מכיוון שזו שפה דקלרטיבית ולא פרוצדוראלית, ולעיתים פקודת ה-SQL נראית כמעט כמו הניסוח המילולי של הדרישה שלנו, או לחילופין- הדרישה יכולה להיות מתורגמת די...
אין תגובות

קיבוץ נתונים

יום רביעי, יולי 14, 2010

לא, לא מדובר בהתיישבות העובדת, אלא באופציות כדוגמת Group By והשימושים השונים בהן. השימוש ב-Group By אמור להיות מוכר לכל מי שמכיר SQL גם ברמה בסיסית: Use AdventureWorks; Go Select uid, type, parent_obj, sysstat, Max(crdate) Mx_crdate, Count(name) Cnt_name From sys.sysobjects --Where crdate>='20100101' Group By uid, type, parent_obj, ...