פוסטים

פיצ'ר חדש: הרצת קוד PL/SQL המקושר לשליפה

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

עד גרסה 12, הפתרון היה פשוט – הולכים על פונקציית PL/SQL: כותבים פונקציה, שומרים אותה בבסיס הנתונים ואז משתמשים בה.

נשאלת השאלה, מה עושים כאשר מדובר בפתרון מאוד ספציפי לבעיה מאוד ספציפית שלא רוצים או לא צריך לשמור לשימוש עתידי? מה עושים אם אנחנו לא רוצים להשאיר את הפונקציה זמינה לשימוש של אנשים אחרים? איך נמנעים מיצירת מבחר פונקציות לא שימושיות שכאלה בבסיס הנתונים שסתם מזבלות את הסביבה?
המשך קריאה…

פיצ'ר חדש: שליפות Top-N בלי מאמץ (כמעט)

עד אורקל 12, כאשר רצינו לשלוף את N הרשומות הראשונות (או אחרונות) של שליפה היינו צריכים לעשות מאמץ מיוחד: לשלוף את הרשומות, לפלטר אותן לתוכן הרלוונטי, למיין את הרשומות ואז לפלטר אותן שוב ל-N הרשומות הרלוונטיות. בחלק מהמקרים, הדבר הזה לא נעשה בצורה הנכונה ואז הרשומות שלנו לא חזרו בסדר הנכון או שהדבר לקח יותר מדי משאבים.

החל מגרסה 12, אורקל עושים זאת שוב ופותרים לנו את הבעיה בהינף פקודה. הפקודה החדשה היא הרחבה של פקודת ה-Select הרגילה והיא נראית ככה:

[ OFFSET offset { ROW | ROWS } ]
[ FETCH { FIRST | NEXT } [ { rowcount | percent PERCENT } ]
    { ROW | ROWS } { ONLY | WITH TIES } ]

למעדיפים את התיעוד הרשמי, אז זה נמצא כאן.

המשך קריאה…

פיצ'ר חדש: עמודת Identity

עוד אחד מהפיצ'רים האלה שאנחנו מיישמים בצורה ידנית עד שבאים אורקל ופותרים לנו את הבעיה בהינף פקודה אחת…

עד גרסה 12, אם היינו רוצים עמודה שתקבל ערכים בצורה עצמאית (לדוגמה מספר רץ למספר הזמנה או משהו דומה) היינו צריכים לבוא וליישם את זה בעצמנו. היינו צריכים להגדיר sequence, היינו צריכים להגדיר trigger שידאג לטפל בטבלה או שהיינו מגדירים קוד חיצוני שיטפל בהכנסת ערכים לעמודה (פונקצית הכנסה לטבלה וכו').

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

המשך קריאה…

הרצאה שלי בפורום DBA מרכז של ilOUG

אהלן,

לא יצא לי לכתוב לאחרונה אבל רציתי לספר שמחר (יום שלישי (10/12/13) אני מרצה בפורום DBA מרכז של ilOUG. ההרצאה שלי היא ההרצאה המסכמת של הכנס (מתחילה ב-17:00) והיא תהיה בנושא Pluggable Database ב-Oracle 12c. מדובר באחד הפיצ'רים המעניינים ביותר בגרסה החדשה של אורקל – פיצ'ר שגורר אחריו שינוי ארכיטקטוני משמעותי במבנה ה-DB. זהו נושא שיצא לי לחקור לא מעט במסגרת פעילות אצל לקוח ואפילו הייתי בכמה הרצאות בנושא ב-Open World 2013 בסן פרנסיסקו.

לצערי אין לי יותר מדי זמן לכתוב לאחרונה אבל אני מבטיח להעלות הרבה ממה שחקרתי בעתיד הקרוב.. 🙂

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

סמינר שבוע אורקל: Oracle Data Guard from A to Z – הסקריפט

במסגרת שבוע אורקל העברתי מצגת על Oracle Data Guard – A to Z. זה הסמינר האהוב עלי – יצרתי אותו לפני כשנתיים ובשנה שעבר לא העברתי אותו מסיבות בירוקרטיות-טכניות. במסגרת הסמינר אני מעביר המון אינפורמציה על הארכיטקטורה של הפתרון, איך משתמשים בו ואיך עובדים איתו – את כל זה ניתן למצוא בפוסט שפרסמתי כאן עם המצגת של הסמינר.

במסגרת הסמינר אני מבצע גם דמו ארוך ועתיר שלבים שמציג איך יוצרים, עובדים ומנהלים סביבה כזו של Data Guard ו-DG Broker.

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

המשך קריאה…

רשימת הפיצ'רים החדשים של אורקל 12.1

אורקל פרסמו את הספרות הרשמית לגרסה 12.1 שזמינה כבר להורדה.
בין שאר הספרים (החשובים כל אחד שלעצמו), פורסם הספר המסקרן ביותר בעיני – Oracle Database 12c Release 1 (12.1) New Features. זהו ספר שראוי שכל DBA שמכבד את עצמו יעיין בו לפחות פעם אחת ועדיף אפילו פעמיים.. 🙂

מכוון שזה ספר שראוי מאוד להתעמק בו, אני אפרסם לעת עתה רק את הקישורים לכותרות.
עיון מעמיק יותר אני אעשה בהמשך (עדיין, מדובר בספר של למעלה מ-120 עמודים) ואציין נקודות חשובות יותר או פחות בעיני. בנתיים, שימו לב לסעיף 1.4.1.3: Multitenant Architecture – בעיני זה אחד הפיצ'רים המסקרנים ביותר וכנראה גם אחד מהשינויים המשמעותיים ביותר בגרסה החדשה.

המשך קריאה…