DCSIMG
Browse by Tags - MS Israel Community
  • לעזור לסבתא לחצות את הכביש

    נסיונות לעזור לאופטימייזר של ה-SQL Server משול לעיתים לניסיון המיתולוגי לעזור לזקנה לחצות את הכביש: גרמנו יותר תועלת מנזק.. נכון שלא תמיד זה כך, ולכן יש להפעיל שיקול דעת. הפעם דוגמה מתי לא כדאי: נתונות שתי טבלאות- אחת גדולה (100,000 שורות) ואחת קטנה (33 שורות) ואנחנו מעוניינים לבצע Join בינהן. העמודה בטבלה הקטנה איתה מתבצע ה-Join היא יחודית ולכאורה היא Primary Key, אך לטבלאות לא הוגדרו אינדקסים. אנחנו רוצים לעזור לאופטימייזר: הוא הרי יבצע Scan לטבלה הגדולה, ולכל שורה יחפש התאמה בטבלה הקטנה; ומכיוון...
  • Join, Semi Join, Anti Semi Join

    ב-Execution Plans אנחנו מוצאים לא פעם את החיוויים הנ"ל צמודים ל-Hash Match או ל-Nested Loops. מה המשמעות שלהם? לגבי Join, Left Join, Right Join לא ארחיב כאן ורק אזכיר שהם מחזירים את כל ההתאמות בין שתי טבלאות או סטים בכפוף להגדרות והתנאים, ואציין כאן שתי דוגמאות מפוסט קודם: --1 Select * From messages M Inner Join syslanguages L On M.language_id=L.lcid;   --2 Select * From messages M Cross Apply ( Select * From syslanguages L Where M.language_id=L.lcid) L; הסינטקס שונה אך מדובר בפעולות Join...
  • באיזה סוג משתנה טקסטואלי כדאי לבחור?

    מה ההבדל בין Char / NChar / Varchar / NVarchar? מתי נבחר במשתנה התומך ביוניקוד (NChar / NVarChar) ומתי לא (Char / Varchar)? מתי נבחר במשתנה קבוע באורכו (Char / NChar) ומתי בבעל גודל משתנה (Varchar / NVarchar)? כיצד נדע באיזה גודל משתנה לבחור- גודל מוגבל או לא (Max)? לרוב הצרכים המעשיים- שימוש ב-Char או ב-Varchar אמור להספיק בהנחה שה-Collation הוא עברי ואנחנו מעוניינים לכתוב בעברית ובאנגלית כולל נִיקוּד בעברית ואותיות גדולות/קטנות ב-English, אך לא בתווים לטיניים מיוחדים האופייניים לחלק מהשפות האירופאיות...
  • תקלה בהתקנת SQL 2012 RC0

    גרסת RC0 זו גרסת ההתנסות האחרונה לפני ההשקה של SQL 2012 בפורים . מי שמתקין אותה בשיטת מיקרוסופט (Enter => Next => I Agree => Choose Default/Recommended Option => OK..) עלול לקבל במהלך הגדרות ההתקנה הודעת שגיאה בהאי לישנה: There was a failure to validate setting CTLRUSERS in validaton function ValidateUsers, ו לינק לכתובת באינטרנט שלא מופיע בה מידע רלוונטי או הצעה לפתרון. הפתרון: בשלב Distributed Replay Controller יש להקיש <Next> ולא לבחור ב-Add Current User (בה השתמשנו באחד השלבים...
  • Parallelism

    כאשר לשרת יש יותר ממעבד אחד הוא יכול לבחור לבצע פעולות במקביל וזה משפיע על בחירת ה-Execution Plan האופטימלי. בפוסט הקודם הראיתי כיצד במקרה של Join בין טבלה לא מאונדקסת לטבלה עם Primary Key & Clustered Index המערכת תבחר בעיבוד במקביל: Select * From messages T1 Inner Join messages_ClstInd T2 On T1.message_id=T2.message_id And T1.language_id=T2.language_id; מאוד יכול להיות שחלק שמי שניסה את הקוד אצלו קיבל Execution Plan שונה לגמרי. בשרת עליו הרצתי את הדוגמה יש שני מעבדים ולכן קיימת אופציה לעבודה...
  • השפעת האינדקסים על ביצוע Join בין טבלאות

    כיצד המערכת מבצעת Join ומה השפעת האינדקסים ומספר הרשומות על כך? בהמשך ל פוסט הקודם - אנתח מספר דוגמאות מבחינת התוכנית שהמערכת תבחר ולא מבחינת הביצועים, והן יתבססו על הטבלאות והאינדקסים שיצרנו בפעם הקודמת: --1. No Indexes Select * Into messages From sys.messages; Go   --2. Clustered Primary Key on message_id,language_id Select * Into messages_ClstInd From sys.messages; Go   Alter Table messages_ClstInd Add Constraint PK_messages_ClstInd Primary Key Clustered (message_id,language_id); Go...
  • השפעת האינדקסים על חיפוש פשוט בטבלה

    כיצד המערכת מחפשת ערכים בטבלה ומה השפעת האינדקסים על כך? מדובר בנושא די בסיסי בתחום, והפוסט הזה מוקדש למי שעדיין אינו מכיר. טבלת המערכת הגדולה ביותר היא sys.messages הכוללת את הודעות השגיאה של המערכת (קרוב ל-100,000 שורות בגרסת 2008 ועוד היד נטוייה בגרסאות הבאות): Select * From sys.messages; ניצור מספר עותקים ממנה ונאנדקס כל אחד בדרך אחרת, ונבדוק כיצד מתבצע החיפוש בכל פעם. נתחיל עם עותק ללא אינדקסים כלל: --1. No Indexes Select * Into messages From sys.messages; Go   --2. Clustered Primary Key...
  • ריבוי תנאים הפונים לאותו אובייקט

    נניח שאנחנו מחפשים עובד שיש לו גם הכשרה ב-SQL Server, גם ב-C# וגם ב-XML, או לחילופין סכימה בדטבייס שברשימת האובייקטים שלה יש גם פרוצדורות, גם טבלאות, וגם Views. כמקובל צריך לנסח שליפה ותנאים, אך יש לשים לב שבשתי הדוגמאות הנ"ל כל התנאים פונים לאותה טבלה (טבלת ההכשרות או טבלת האובייקטים) ובדיקה של כל תנאי בנפרד תגרום לשלוש פניות לטבלה וזה קצת מיותר. נציע מספר פתרונות, ונבחן אותם באמצעות ה-Execution Plan וסיכומי Statistics IO לגבי פעולות הקריאה: לי עצמי לקח זמן רב להבין כיצד להיעזר באמצעים האלו...
  • ישום היררכיה (עץ) בעזרת מספרים ראשוניים

    הפוסט להלן מציג דרך לממש עץ בעזרת מספרים ראשוניים, תוך שימוש בתכונה שכל מספר יכול להיות מיוצג כמכפלה של מספרים ראשוניים (על ידי פירוק לגורמים). עץ בתורת הגרפים מוגדר כגרף מכוון בו לכל קודקוד יש לכל היותר קודקוד אחד שמחובר אליו בקשת, והוא יכול לתאר מבנים או תהליכים שונים: 1. מערכת היררכית בארגון בה לכל אחד יש מנהל אליו הוא כפוף (זולת המנהל הבכיר ביותר), אם כי למנהל יכולים להיות כפופים מספר עובדים. 2. מבנה דוח כספי מורכב. למשל- מאזן מחולק לנכסים ולהתחייבויות והון עצמי; ההתחייבויות מחולקות להתחייבויות...
  • זו ההזדמנות לעשות סדר בבלאגן – DQS, מודול טיוב הנתונים של SQL Server 2012

    מאת: רועי פסטרנק מנהלי מחשוב ומערכות מידע משקיעים משאבים רבים בפיתוח תשתיות מחשוב מתקדמות אשר יתרמו לייעול תהליכים בארגון ולשיפור ביצועים. אבל הנה פרדוקס קטן: גם התשתיות הכי מתקדמות תמיד יהיו תלויות באיכות הנתונים שאותן הן אמורות לנהל וגם השקעות גדולות באיסוף כמות גדולה של נתונים ובניהול שלהן הופכות חסרי ערך ללא דאגה מתמדת לאיכות הנתונים. המשוואה פשוטה: נתונים לא טובים = מידע לא טוב = עסקים לא טובים. בנוסף, היום יותר ויותר אנו רואים התייחסות רגולטורית לסוגיית טיוב הנתונים. במקרים רבים ישנה רגולציה...

Page 1 of 13 (122 items) 1 2 3 4 5 Next > ... Last »