פוסטים

שבוע אורקל: Oracle Database 11g – Self Management Features, Diagnostics & Tuning – המצגת

הסמינר השני שהעברתי בשבוע אורקל היה Oracle Database 11g – Self Management Features, Diagnostics & Tuning.
השם היה קצת מטעה כי הצגתי גם דברים שהיו זמינים לפני Oracle 11g והתרכזתי יותר בחלק של ה-tuning ופחות ב-diagnostics.

המצגת הזו היה לי הרבה יותר קשה – בעיקר כי היו בה חלקים שהם בפיצ'רים של אורקל אבל אף אחד לא מרבה להשתמש בהם. האולם שהעברתי את הסמינר גם היה מאוד קשה – הוא היה מסודר בשורות, בלי שולחנות ועם כסאות ששברו לכולם את הגב. בכל זאת מרבית המשתתפים נשארו עד סוף הסמינר (ועוד ביום חמישי!) כך שאני רוצה להודות לכל המשתתפים שהגיעו ונתנו פידבקים חיוביים בהחלט.

אני מצרף פה את המצגת ובקרוב אני אכתוב פוסט נוסף בנוגע לכלי שהצגתי בסמינר – ה-AWR Formatter 1.6.

שבוע אורקל: Data Guard A to Z – המצגת

שבוע אורקל נגמר כבר לפני שבוע ורציתי להודות באופן אישי לכל מי שטרח והגיע לסמינרים שהעברתי (ולכנס באופן כללי). היה מגניב, היה מרתק, נהנתי בצורה יוצאת דופן גם אם קצת יצאתי מותש מהחוויה… 🙂

כמו שהובטח (ובאיחור מזעזע), הנה היא – המצגת הראשונה שהעברתי בשבוע אורקל. המצגת היא בנושא Data Guard ובמהלך סוף השבוע הקרוב אני מבטיח להעלות גם את ה-demo שהצגנו והסבר מפורט איך להקים את הסביבה שלו ב-Amazon Elastic Cloud כדי לשחזר את ההגדרות במדוייק למרות שזו לא חובה ואפשר להשתמש בו בכל סביבה אחרת.

אני מודה שוב לכל מי שהשתתף בסמינר, התגובות שלכם היו מעולות ונהנתי מאוד להעביר את הסמינר הזה.

אם יש שאלות אני זמין במייל או בפידבקים פה.

שימוש ב-Append ו-redo logs

הייתי היום בכנס ilOUG שיוחד לנושאי Data Warehouse ומכוון שהנושא קרוב לליבי (עדיין, כמעט שלוש וחצי שנים ב-DWH של פרטנר) הלכתי לשמוע מה יש בנושא ונהנתי מאוד.

במהלך ההרצאה האחרונה הסבירו החבר'ה מאורקל על שיטות טעינה למחסני נתונים. במהלך ההרצאה התפתחה שיחה קצרה ביני ובין עמיאל דיוויס בנושא מתי יש להינט Append משמעות והאם זה עוזר רק בסביבה של Archive log mode או לא. הוא הפנה אותי לבלוג שלו אז אני מפרגן ולהלן לינק למה שהוא כתב בנושא כבר לפני שנתיים. אם הגעתם עד כאן ולא הבנתם כלום, אולי הגיע הזמן להסביר קצת במה מדובר.
המשך קריאה…

Oracle Database 11.2.0.2 לחלונות שוחררה

לכל מי שהמתין לגרסה 11.2.0.2 של אורקל לחלונות: אני שמח לבשר ששלושה חודשים אחרי שהיא יצאה ללינוקס, הגרסה לחלונות יצאה שלשום והיא ניתנת להורדה מ-My Oracle Support – פאץ מספר 10098816.

שימו לב שצורת ההתקנה השתנתה והיא מגיעה כהתקנה מלאה ולא צריך את הגרסה הקודמת (11.2.0.1) כדי להתקין את הגרסה החדשה. גם ברירת המחדל להתקנה השתנתה ועכשיו היא התקנה בספרייה חדשה (out-of-place) ולא על הספרייה הקודמת (in-place). היתרון הגדול הוא שהספרייה הקודמת (כולל ה-one-of-patches) נשמרים למקרה שנרצה לחזור לספרייה הקודמת וגם תהליך ההתקנה מתקצר כי לא צריך להוריד את ה-instance בזמן ההתקנה של התוכנה והפאצ'ים שנרצה להתקין על ה-home החדש. החסרונות: צורך במקום נוסף ושינוי של ה-Oracle Home (אם מסתמכים עליו בסקריפטים, לדוגמה).

למידע נוסף ניתן לקרוא ב-MOS – מסמך מספר 1189783.1.

שינוי התנהגות ב-execute immediate בין גרסה 10 לגרסה 11

במסגרת הבדיקות של גרסה 11 נתקלנו בתקלה מוזרה – קוד pl/sql שעבד בגרסאות קודמות הפסיק לעבוד בגרסה החדשה.

הקוד שעבד קודם הוא:

SQL> begin
2 execute immediate 'alter view vemp compile;';
3 end;
4 /
PL/SQL procedure successfully completed.

אבל כאשר ניסינו לשים אותו בגרסה 11.2.0 קיבלנו את ההודעה הבאה:

SQL> begin
2 execute immediate 'alter view vemp compile;';
3 end;
4 /
begin
*
ERROR at line 1:
ORA-00911: invalid character
ORA-06512: at line 2

המשך קריאה…

אגריגציה של מחרוזות

היכולת לעשות אגריגציה של מחרוזות (ובעצם שירשור של ערכים משורות לשורה אחת) היא עניין דיי מורכב – ישנם כמה פתרונות שבהם היינו משתמשים בגרסאות הקודמות. בין הפתרונות שהיינו משתמשים בהם ניתן למנות את:

  • פונקציית STRAGG (של Tom Kyte) – שזמינה החל מגרסה 9i ומשתמשת בטכניקה של פונקציות משתמש סיכומיות. הפוקנציה הזו לא ידעה כל כך למיין את הרשומות בתוך הרשימה (בעיה שנפתרה לאחר מכן) והיו לה ביצועים לא כל טובים, אבל היא עשתה את העבודה. במאמר מוסגר נציין שהפונקציה הזו נוספה באופן מובנה לבסיס הנתונים בגרסה 11 אבל היא עדיין לא יודעת למיין או להשתמש במפרידים בין הערכים.
  • שימוש ב-CONNECT_BY_PATH ושליפות היררכיות שזמין מגרסה 9i – פתרון מורכב יחסית שלא היה טוב לכל שליפה.
  • שימוש בפונקציית model בעלת התחביר המזעזע והביצועים העוד יותר מזעזעים שזמינה מגרסה 10g.
  • שימוש ב-collect וקוד pl/sql שזמין מגרסה 10g גם כן.
  • עריכה: ידידי לאוניד הזכיר גם את הפונקציה wmsys.wm_concat. היא זמינה החל מגרסה 9i  אבל דורשת התקנה של ה-wmsys (workspace manager) – שמותקן כברירת מחדל רק בגרסאות מאוחרות יותר .

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

החל מגרסה 11gR2 קיימת פונקציה סיכומית בשם LISTAGG. הפונקציה החדשה יודעת לשרשר ערכים משורות ולהחזיר אותן בתור ערך בעמודה. יש לה מפריד שניתן לקבוע אותו והיא יודעת למיין את הערכים.
המשך קריאה…