ארכיון

Archive for the ‘SSAS’ Category

מי לעזאזל מכביד קשות על שרת ה-Analysis Services?

מערכות ה- OLAP המובילות בעולם נכון להיום הן מערכות  SQL Server. לרוב הן רצות על שרתים יעודיים המשמשים כמעט בלעדית לעיבוד קוביות של SSAS. השרתים משמשים את המשתמשים שמריצים דו"חות על הקוביות הללו (לרוב דרך מערכות להפקת דו"חות). במקרים רבים ישנו משתמש המחליט "לקרוע" את השרת הזה עד זום דם ומריץ אגרגציה מטורפת על כמות אדירה של נתונים – והכל בזמן אמת.

הבעיה היא – איך עולים על המשתמש הסורר? מי תוקע את כולם? מה בדיוק גרם למערכת "להיתקע"?

כמובן שאם מריצים profiler על המערכת, אפשר לראות מי מריץ מה. אבל אי אפשר להחזיק profiler פתוח כל הזמן כי הרי הכלי הזה יוצר עומס רב על השרת ובינינו – אף אחד לא יישב כל היום ויתבונן בפלט שלו.

למנוע הטבלאי של SQL Server יש אפשרות להריץ trace שמזין את אותו הפלט של profiler לקובץ או לטבלה. אבל לצערי, אין trace עדיין ל-SSAS שניתן להרצה דרך T-SQL או דרך XMLA.

אז מה עושים? יש לנו את הדוט נט לטובת העניין!!!

כידוע, יש לנו בדוט נט את ה-SMO שהוא SQL Server Management Objects. זוהי משפחה של קלאסים שמאפשרת לעשות המון משימות ניהוליות על SQL Server ואפשר לכתוב עשרות מאמרים רק על SMO.

הייתי רוצה רק להזכיר את ה-namespace לטובת tracing שנקרא Microsoft.SqlServer.Management.Trace.

אפשר להפעיל אותו גם על SQL Server הטבלאי וגם על SSAS. זה פותר לנו את בעיית המחסור ב-trace על SSAS הניתן להפעלה דרך T-SQL.

ניתן פשוט ליצור windows service שרץ ברקע ומפעיל trace על ה-SSAS תוך שימוש ב-SMO. את התוצאות, ה-service מזין לתוך הטבלה רגילה ב-DB טבלאי. מה שיפה ב-trace הזה הוא שהתקורה שהוא מייצר היא אפסית וניתן להריץ אותו על כל מחשב שיש לו גישה לשרת ולאו דווקא על שרת ה-SSAS עצמו. גם בסיס הנתונים אליו נכתבות התוצאות יכול להיות כל DB על כל שרת שיש לנו גישה אליו ברשת.

עכשיו חסר לנו עוד דבר – מדדים של מערכת ההפעלה (כמו זכרון, מעבד ודיסקים) ושל SSAS. אם נתעד גם את המדדים וגם את הפעולות (trace) ואם נצליב ביניהם, נוכל לדעת מי המשתמש שהריץ איזה MDX שגרם למשל ל-CPU להגיע ל-100 אחוז.

אז איך אוספים מדדים? על כך אכתוב בפוסט הבא.

מודעות פרסומת