שיחות על Storage – אזהרה ל DBA: המאמר לפניך הולך להכיל מושגי אחסון

יום ראשון, אפריל 27, 2014

שרון רימר ר"צ DBA בפרוייקט ממשלתי מטעם נאיה טכנולוגיות לפני זמן מה החלו אצלנו תלונות מצד המפתחים על אטיות משמעותית בביצועים של אחת הסביבות החדשות שהקמנו. המפתחים שבדקו את הסביבה ראו את קצה הקרחון. להלן מוצג הפתרון שלי לבעיה. הרעיון הכללי לקבל בעיה ולהתחיל לפרק אותה לחלקים – שיטת הסלאמי(סלנג עממי). החלקים: האפליקציה. שכבת ביניים – קשר בין האפליקציה לבין הנתונים DAL. שכבת מסד הנתונים. שכבת האחסון. הבעיה: תלונות של המפתחים על איטיות האפליקציה. השלבים לפתרון: כאשר לקחנו את הקוד הSQL שהורץ (בשלילת פרמטרים כללים – Set Option) והרצנו אותו על שרת הSQL ראינו שהזמנים נשארו איטיים. בעצם המטרה הייתה לשלול את שרת האפליקציה. בסביבה החדשה שהקמנו(על VM), מסד הנתונים האפליקטיבי בפיתוח היה זהה לכאורה...
2 תגובות

המרות לא-מפורשות, אינדקסים ומה שבינהם

יום ראשון, אפריל 14, 2013

שרון רימר DBA בפרוייקט ממשלתי מטעם נאיה טכנולוגיות. SQL Server 2012 מכיל חידושים רבים. רבות נכתב על הפונקציות והיכולות החדשות שנוספו למוצר, אך תחום אחד בקושי הוזכר - שיפורים בהצגת תוכניות הביצוע. ל-Execution Plan נוספו אזהרות חדשות, והיום אני רוצה להתמקד באזהרה אחת : אזהרת המרה לא-מפורשת(implicit conversion warnings). נניח שאנו ניצבים מול המצב הבא: טבלה א' הינה טבלת לקוחות וטבלה ב' הינה טבלת מכירות. הקישור הטבעי שרובנו נעשה הינו יחיד לרבים, שאומר לקוח אחד מסוגל לבצע הרבה קניות. אך לעיתים, מסיבות שונות ומשונות, מסד הנתונים הוקם כאשר השדה המקשר בטבלה ב' (שברוב המקרים אמור לשמש כמפתח זר) יהיה מטיפוס שונה משדה המפתח...

איך להתמודד עם Filegroup שמסרב להימחק?

יום חמישי, נובמבר 29, 2012

שמוליק כהן DBA  בפרוייקט ממשלתי מטעם נאיה טכנולוגיות. הכל התחיל בכך שרצינו למחוק Filegroup מסוים. בהתאם לתרגולת, העברנו את הטבלאות שהיו עליו ל- Filegroup אחר על ידי מחיקה ויצירה מחדש של ה- clustered indexes שלהן. (אם יש להם גם non-clustered index גם אותם יש להעביר באותה צורה ל- Filegroup החדש).  אחרי שהקובץ שהיה בו התרוקן לחלוטין, מחקנו את ה-Filegroup באמצעות הפקודה: ALTER DATABASE MyDB remove FILE oldFile;   ולאחר מכן ניסינו למחוק את ה- Filegroup באמצעות הפקודה:  ALTER DATABASE MyDB REMOVE FILEGROUP OldFilgroup  ...
אין תגובות

סרטון הדרכה – TRY/CATCH and @@error

עדי כהן מומחה SQL Server בעל כ-15 שנות ניסיון מגוון בתחום. ר"צ DBA בחברה למסחר פיננסי באינטרנט מטעם נאיה טכנולוגיות. סרטון הדרכה המראה איך לטפל בשגיאות בקוד T-SQL תוך שימוש ב-TRY/CATCH http://www.youtube.com/watch?v=iZYCER0Q5ds&feature=youtu.be&hd=1
אין תגובות

סרטון הדרכה – SQL Server Profiler and server side trace

עדי כהן מומחה SQL Server בעל כ-15 שנות ניסיון מגוון בתחום. ר"צ DBA בחברה למסחר פיננסי באינטרנט מטעם נאיה טכנולוגיות. סרטון הדרכה המראה איך להפעיל-Server Side Trace באמצעות SQL Server Profiler http://www.youtube.com/watch?v=b3rb-rMydL4&feature=youtu.be&hd=1
אין תגובות

מחיקת קובצי גיבוי ישנים שלא באמצעות Maintenance Plan

יום רביעי, אוגוסט 8, 2012

שמוליק כהן DBA  בפרוייקט ממשלתי מטעם נאיה טכנולוגיות. הכל התחיל כאשר יום אחד נכשלו מספר גיבויים. בדיקה מהירה של הסיבות לכישלון הראתה שאין מקום בדיסק. בדיקה טיפה יותר יסודית הראתה שלמרבה ההפתעה, למרות שבג'וב הגיבוי מוגדר למחוק קבצי גיבוי ישנים, בפועל הללו שרדו על הדיסק והגיעו לגיל מופלג. חשוב לציין שבכל אותן פעמים שהג'וב לא ביצע את שלב המחיקה, הוא דיווח על סיום מוצלח שלו, ולנו, צוות ה- DBA  לא היתה סיבה לחשוד שמשהו אינו כשורה. השורה התחתונה היא, שכאשר מדובר במחיקת קבצי גיבוי ישנים, ה- maintenance plan...

שימוש ב-SMO ליצירת סקריפטים

צח פניגשטיין יועץ SQL בכיר, בעל 10 שנות ניסיון בתחום התוכנה, ר"צ DBA בפרוייקט ממשלתי מטעם נאיה טכנולוגיות לאחרונה ביקרתי אצל לקוח שביקש לגבות את סביבת הפיתוח בארגון שלו. הלקוח דרש גיבויים זמינים וקלים: גיבויים שקל לבצע מהם שחזור, והם בעלי נפח קטן. מאחר שמדובר בסביבת פיתוח, נדרשתי שלא לגבות את המידע במסד הנתונים, מלבד הנתונים במספר מצומצם של טבלאות קונפיגורציה. ניתן לומר דברים רבים בשבחה של מערכת הגיבוי של SQL Server, אך כמובן שהיא אינה מתאימה לדרישה מסוג זה. קובץ גיבוי מכיל נתונים וסכמה של כל...
אין תגובות

שדרוג מסד נתונים המכיל קוד CLR לגרסת SQL Server 2012

יום רביעי, מאי 2, 2012

צח פניגשטיין יועץ SQL בכיר, בעל 10 שנות ניסיון בתחום התוכנה, ר"צ DBA בפרוייקט ממשלתי מטעם נאיה טכנולוגיות לאחרונה ניסיתי להעביר את מסד הנתונים שלי משרת SQL 2008R2 לשרת SQL 2012. בצעתי Restore לקובץ גיבוי על השרת החדש. לאחר מכן העברתי את ה-Compatibility Level לגרסה 2012 ולחצתי OK:   לאחר עבודה מאומצת מצד השרת, צצה השגיאה הבאה: אומנם פסח כבר מאחורינו, אבל מה נשתנה השדרוג הזה מכל השדרוגים? חשוב לציין שבשלב...
אין תגובות

מקרי מבחן של Deadlock: ניתוח ופיתרון

יום חמישי, אפריל 5, 2012

מיכל סומך מנהלת תחום SQL SERVER ויועצת בכירה בחברת נאיה טכנולוגיות, בעלת 9 שנות ניסיון בתחום מניסיוני, בכל פעם שנתקלתי באירוע deadlock, זה היה בעקבות בעית קידוד שניתן היה לתקן. במקרים שיתוארו במאמר זה, נתקלתי בשני deadlocks מסוגים שונים. אצל הלקוח המדובר היתה טבלה אחת גדולה וכמה טבלאות קטנות. הודות לכך, חקירת הבעיה היתה קלה ומהירה. עם זאת, מציאת הסיבות ל-deadlock חשפו בעיות עיצוב עמוקות. כאשר פירטתי ללקוח את הסיבות לאירוע ה-deadlock הייתי צריכה להסביר על כל מיני מנגנונים בסיסיים ועל כללי עיצוב...
4 תגובות