1 חישוב ואופטימיזציה של שאילתות חלק 1 Query Evaluation and Optimization Part 1.

Slides:



Advertisements
Similar presentations
Completeness and Expressiveness. תזכורת למערכת ההוכחה של לוגיקה מסדר ראשון : אקסיומות 1. ) ) (( 2. )) ) (( )) ( ) ((( 3. ))) F( F( ( 4. ) v) ( ) v ((
Advertisements

1 Tree-Structured Indexes Module 4, Lecture 4. 2 Introduction As for any index, 3 alternatives for data entries k* : 1. Data record with key value k 2.
A. Frank File Organization Indexed-Sequential File Measurements Thanks to Tamar Barnes.
Presentation by Dudu Yanay and Elior Malul 1.  מה משותף לכל אלגוריתם המשתמש ב -Bucket Elimination: ◦ נתון מודל הסתברותי ורשת ביסיאנית מתאימה. ◦ נתונה.
אופטימיזציה של שאילתות
1 חישוב של אופרטורים רלציוניים Evaluation of Relational Operators.
דוד שוורץ, עידן זק, נטע צור וחיה כהן. הפונקציונאליות : המשתמש יבחר קובץ שעליו הוא רוצה לבצע את האנליזה, וילחץ עליו עם כפתור ימני בעכבר. יפתח תפריט ובו.
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
תרגול 8 עצי B+ אינדקס משני.
A. Frank File Organization קובץ ישיר מתקדם Advanced Direct File.
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
שאלות חזרה לבחינה. שאלה דיסקים אופטיים מסוג WORM (write-once-read-many) משמשים חברות לצורך איחסון כמויות גדולות של מידע באופן קבוע ומבלי שניתן לשנותו.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
Map-Reduce Input: a collection of scientific articles on different topics, each marked with a field of science –Mathematics, Computer Science, Biology,
A. Frank File Organization Indexed-Sequential File Introduction Thanks to Tamar Barnes.
1 Data Structures, CS, TAU, Splay Tree Splay Tree  מימוש של עץ חיפוש בינארי  מטרה לדאוג ל- Amortized Time  פעולה בודדת יכולה לקחת O(N)  אבל כל רצף.
A. Frank File Organization Sequential File Measures.
A. Frank File Organization Pile File Measures. 2 A. Frank Steps in analysis of file organization בהערכת מבנה קובץ, נתייחס ל - 6 שלבים / צעדים : 1. תאור.
Data Structures, CS, TAU, Splay Tree 1 Splay Tree - עץ חיפוש בינארי - מטרה לדאוג ל - Amortized Time - פעולה בודדת יכולה לקחת O(N) - אבל כל רצף M פעולות.
A. Frank File Organization Classic / Direct File קובץ ישיר קלאסי.
חישוב ואופטימיזציה של שאילתות חלק 1
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
דוד שוורץ, עידן זק, נטע צור וחיה כהן. הפונקציונאליות:  המשתמש בוחר קובץ שעליו הוא רוצה לבצע את האנליזה, ולוחץ עליו עם כפתור ימני בעכבר.  נפתח תפריט.
1 חישוב ואופטימיזציה של שאילתות חלק 2 Query Evaluation and Optimization Part 2.
קובץ רב-אינדקס Multi-Indexed File
ערמות ; מבני נתונים 09 מבוסס על מצגות של ליאור שפירא, חיים קפלן, דני פלדמן וחברים.
מערכות הפעלה ( אביב 2009) חגית עטיה ©1 מערכת קבצים log-structured  ה log הוא העותק היחיד של הנתונים  כאשר משנים בלוק (data, header) פשוט כותבים את הבלוק.
A. Frank File Organization Introduction to Overflow Thanks to Tamar Barnes.
תרגול 9 אלגברה רלציונית.
תרגול 7 עצי B
ערכים עצמיים בשיטות נומריות. משוואה אופינית X מציין וקטור עצמי מציינת ערך עצמי תואם לוקטור.
A. Frank File Organization Transfer Time/Rate Parameters.
Data Structures, CS, TAU, Perfect Hashing 1 Perfect Hashing בעיה : נתונה קבוצה S של n מפתחות מתחום U השוואה ל - Hash : * טבלה קבועה (Hash רגיל - דינאמי.
Remember Remember The 5 th of November. תרגול 2 קובץ סדרתי.
1 Data Structures, CS, TAU, Perfect Hashing בעיה: נתונה קבוצה S של n מפתחות מתחום U השוואה ל- Hash : * טבלה קבועה (Hash רגיל - דינאמי) * רוצים זמן קבוע.
מודל הלמידה מדוגמאות Learning from Examples קלט: אוסף של דוגמאות פלט: קונסיסטנטי עם פונקציה f ב- C ז"א קונסיסטנטי עם S ז"א מודל הלמידה מדוגמאות Learning.
יחס סדר חלקי.
מערכת הקבצים : יסודות  מבוא : מטרות מערכת קבצים  מנשק המשתמש : פעולות על קבצים, ארגון קבצים, הגנה  תכונות של דיסקים.  מימושים : בסיסיים וקצת על מימושים.
מבוא למדעי המחשב תרגול 3 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
1 חישוב של אופרטורים רלציוניים Evaluation of Relational Operators.
Data Structures, CS, TAU, RB-Tree 1 עץ אדום-שחור - עץ חיפוש בינארי - בכל צומת ביט אינפורמציה נוסף - צבע « עץ “ כמעט מאוזן ” « (O(log n במקרה גרוע ביותר.
Markov Decision Processes (MDP) תומר באום Based on ch. 14 in “Probabilistic Robotics” By Thrun et al. ב"הב"ה.
A. Frank File Organization Introduction to Pile File.
עצים בינאריים - תזכורת דרגת צומת שורש עלה צומת פנימי מרחק בין 2 צמתים
מתמטיקה בדידה תרגול 2.
A. Frank File Organization Hardware Size Parameters.
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
Safari On-line books. מה זה ספארי ספארי זו ספריה וירטואלית בנושא מחשבים היא כוללת יותר מ כותרים כל הספרים הם בטקסט מלא ניתן לחפש ספר בנושא מסוים.
1 B+ Trees. 2 Tree-Structured Indices v Tree-structured indexing techniques support both range searches and equality searches. v ISAM : static structure;
DBMS Internals: Storage February 27th, Representing Data Elements Relational database elements: A tuple is represented as a record CREATE TABLE.
Tree-Structured Indexes. Range Searches ``Find all students with gpa > 3.0’’ –If data is in sorted file, do binary search to find first such student,
Storage and Indexing February 26 th, 2003 Lecture 19.
פיתוח מערכות מידע Class diagrams Aggregation, Composition and Generalization.
Adapted from Mike Franklin
Database Management Systems, R. Ramakrishnan and J. Gehrke1 Tree-Structured Indexes Chapter 9.
Data Structures Hanoch Levi and Uri Zwick March 2011 Lecture 3 Dynamic Sets / Dictionaries Binary Search Trees.
Storage and Indexing. How do we store efficiently large amounts of data? The appropriate storage depends on what kind of accesses we expect to have to.
Tirgul 12 Trees 1.
אינדקסינג והשינג (indexing & hashing)
SQL בסיסי – הגדרה אינדוקטיבית
תירגול 14: מבני נתונים דינאמיים
עבודה עם נתונים באמצעות ADO.NET
ממשקים - interfaces איך לאפשר "הורשה מרובה".
תיאוריית תכנון סכמות למסדי נתונים יחסיים חלק 4
Data Structures, CS, TAU, Splay Tree
Based on the lecture notes of Prof. Sagiv
שיעור עשירי: מיונים, חיפושים, וקצת סיבוכיות חישוב
Storage and Indexing.
General External Merge Sort
Indexing February 28th, 2003 Lecture 20.
Presentation transcript:

1 חישוב ואופטימיזציה של שאילתות חלק 1 Query Evaluation and Optimization Part 1

2 המטרה לפתח שיטות מתאימות לחישוב כל אחת מהפעולות האלגבריות יותר מדרך אחת לחשב פעולה נתונה למצוא את הדרך המהירה ביותר לחשב שאילתה המורכבת ממספר פעולות צריך לבחור דרך מתאימה לביצוע כל אחת מהפעולות צריך לבחור את הסדר המהיר ביותר לביצוע הפעולות

3 דוגמה R(A,B) ⋈ S(B,C) ⋈ T(C,D) צירוף הוא אסוציאטיבי, לכן יש שתי אפשרויות לחישוב הביטוי הנ " ל : R(A,B) ⋈ (S(B,C) ⋈ T(C,D)) (R(A,B) ⋈ S(B,C)) ⋈ T(C,D) צירוף הוא גם קומוטטיבי, לכן יש אפשרות נוספת (R(A,B) ⋈ T(C,D)) ⋈ S(B,C) מהי האפשרות המהירה ביותר ?

4 שיטות עיקריות לחישוב צירוף הצירוף היא הפעולה האלגברית היקרה ביותר וקיימות עבורה מספר שיטות חישוב שונות Block Nested-Loops Join Index Nested-Loops Join Sort-Merge Join Hash-Join בהמשך, נתאר כל אחת מהשיטות הללו כמו כן, נתאר שיטות לחישוב הפעולות האלגבריות האחרות

5 דוגמה לבעיית אופטימיזציה עבור R(A,B) ⋈ S(B,C) ⋈ T(C,D) צריך לבחור שיטה מתאימה לכל אחת משתי פעולות הצירוף סדר מתאים לביצוע הפעולות יש מספר רב של אפשרויות לבחור מתוכן ההבדלים בזמני הריצה של האפשרויות השונות עשויים להיות גדולים מאוד

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

7

8 הנחות מפשטות מניחים זמן קבוע לקריאה או כתיבה של בלוק בלוק טיפוסי מכיל בין 1K ל- 4K בתים מחשבים רק את הזמן הדרוש לקריאה וכתיבה מהדיסק, תוך התעלמות מהזמן שלוקחות פעולות ה - CPU זאת הנחה סבירה, כי פעולות הדיסק לוקחות הרבה יותר זמן וניתנות לביצוע במקביל לפעולות ה- CPU

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

10 אחסון רשומות בבלוק רשומות יכולות להיות באורך קבוע או באורך משתנה שיטת האחסון צריכה לתמוך בביצוע יעיל של מציאת רשומה בתוך בלוק ניצול מקום המתפנה ממחיקת רשומות קרא בספר ( או בשקפים ) – פרק 7

11 סוגי קבצים קובץ ערמה (Heap file) הרשומות מאוחסנות (ללא מיון) בבלוקים, שמשורשרים זה לזה קובץ ממוין (Sorted file) טוב לשליפת כל הרשומות לפי סדר המיון או למציאת הרשומות בטווח מסוים של ערכים קובץ ערבול (Hash file) פונקצית הערבול מקבלת ערכים עבור שדות החיפוש ומוצאת רשומות עם ערכים אלה

12 המאפיינים של קובץ מספר הבלוקים של הקובץ – B מספר הרשומות בבלוק – R הזמן ( הממוצע ) לקרוא בלוק – D מתעלמים מקריאה מקדימה (pre-fetching) של בלוקים – דבר שחוסך זמן, כי זה מתבצע במקביל לעיבוד בלוקים שכבר נמצאים בזיכרון

13 הפעולות על קובץ הוספת או מחיקת רשומה בודדת חיפוש לפי ערך עבור המפתח קובץ ערמה מוסיפים בסוף הקובץ קובץ ממוין הקובץ ממוין לפי המפתח מכווצים את הקובץ לאחר מחיקה קובץ ערבול אין overflow, 80% תפוסה

14 הזמן הנדרש לביצוע הפעולות ערבולממויןערמה 1.25BDBD מעבר על כל הרשומות DDlog 2 B0.5BD חיפוש רשומה לפי מפתח 1.25BD D(log 2 B + # of pages with matches) BD חיפוש כל הרשומות בטווח נתון 2D Search + BD 2D הוספת רשומה 2DSearch + BDSearch + D מחיקת רשומה

15 אינדקסים אינדקס מעל קובץ ( קרי, יחס ) נבנה עבור מפתח חיפוש (search key) מפתח חיפוש הוא אוסף כלשהו של שדות, שאיננו בהכרח מפתח של הקובץ בהינתן ערך עבור מפתח החיפוש, האינדקס מאפשר להגיע ישירות לכל הרשומות בעלות הערך הנתון

16 האפשרויות למבנה הרשומות של אינדקס שני סוגים עבור הנתונים של אינדקס : רשומות רגילות של קובץ המאחסן יחס  האינדקס הוא חלק ממבנה הקובץ  לכל היותר אינדקס אחד יכול להיות כזה נתוני כניסה לקובץ שמאחסן יחס  אלה רשומות שמאפשרות להגיע במהירות לכל הרשומות הרגילות של הקובץ, שיש להן את הערך המבוקש עבור מפתח החיפוש  במקרה זה האינדקס הוא קובץ נפרד

17 האפשרויות למבנה של נתוני כניסה נתוני כניסה מהצורה (k, rid), כאשר k הוא ערך ו - rid (record identifier) הוא מצביע לרשומה של היחס עם הערך k זוהי רשומה מאורך קבוע ויכולות להיות מספר רשומות עבור k נתוני כניסה מהצורה (k, list of rids) זוהי רשומה מאורך משתנה ויש רק רשומה אחת עבור k

18 סיווג אינדקסים אינדקס ראשי – מפתח החיפוש מכיל מפתח ראשי אינדקס משני – אחרת פירוש אחר: אינדקס ראשי מכיל רשומות של קובץ, בעוד שאינדקס משני מכיל נתוני כניסה אינדקס מקבץ (clustered index) – סדר הרשומות באינדקס זהה או " קרוב " לסדר הרשומות בקובץ אינדקס לא מקבץ (unclustered index) – אחרת אינדקס שמכיל רשומות של קובץ הוא תמיד מקבץ, אבל אינדקס מקבץ גם יכול להיות בנוי מנתוני כניסה לכל היותר אינדקס אחד יכול להיות מקבץ שליפת רשומות לפי אינדקס לא מקבץ לוקחת יותר זמן

19 בניית אינדקס מקבץ לקובץ ערמה מיין את הערמה והשאר בכל בלוק שטח פנוי להוספת רשומות בעתיד בעתיד יתכן ויהיה צורך בבלוקים של overflow לצורך הוספת רשומות – לכן הסדר של רשומות האינדקס קרוב, אבל לא זהה, לזה של רשומות הקובץ Index entries Data entries direct search for (Index File) (Data file) Data Records data entries Data entries Data Records CLUSTERED UNCLUSTERED

20 אינדקס צפוף ואינדקס דליל אינדקס דליל שומר רק חלק מהערכים של מפתח החיפוש חייב להיות אינדקס מקבץ כדי למצוא את הרשומות של הקובץ עם מפתח k מחפשים ערך b כך ש - b הערך הגדול ביותר באינדקס שעדיין אינו גדול מ- k ממשיכים לחפש בקובץ בסדר עולה מהרשומה הראשונה עם הערך b

21 מפתח חיפוש מורכב כאשר מפתח חיפוש כולל כמה שדות, ניתן למיין מיון לקסיקוגרפי ( או לאכסן בדרך מתוחכמת יותר ), כך שניתן לבצע ביעילות חיפוש טווח על חלק מהשדות לדוגמה, אינדקס על (age, sal) חפש רשומות עם age=20 חפש רשומות עם age=20 and sal>1000  מצא כל הרשומות עם sal=20 ובחר מתוכן את אלה עם המשכורות הגדולות מ- 1000

22 סוגי מבנים של אינדקסים אינדקס מבוסס על עץ חיפוש מאוזן עץ B+ הוא הנפוץ ביותר מאפשר חיפוש לפי טווח אינדקס מבוסס על ערבול מחייב ערבול בר-הרחבה (extendible hashing), כלומר אפשרות להגדיל את מספר הדליים (ולשנות בהתאם את פונקצית הערבול) כאשר מתווספות רשומות מאפשר חיפוש רק לפי שוויון

23 שקפים על עץ B+ להלן שלושה שקפים מפרק 9 על עץ B+ פרק 10 עוסק באינדקסים הבנויים על ערבול פרק 11 עוסק במיון חיצוני

24 B+ Tree: The Most Widely Used Index Insert/delete at log F N cost; keep tree height- balanced. (F = fanout, N = # leaf pages) Minimum 50% occupancy (except for root). Each node contains d <= m <= 2d entries. The parameter d is called the order of the tree. Supports equality and range-searches efficiently. Index Entries Data Entries ("Sequence set") (Direct search)

25 Example B+ Tree Search begins at root, and key comparisons direct it to a leaf Search for 5*, 15*, all data entries >= 24*... * Based on the search for 15*, we know it is not in the tree! Root * 3*5* 7*14*16* 19*20*22*24*27* 29*33*34* 38* 39* 13

26 B+ Trees in Practice Typical order: 100. Typical fill-factor: 67%. average fanout = 133 Typical capacities: Height 4: = 312,900,700 records Height 3: = 2,352,637 records Can often hold top levels in buffer pool: Level 1 = 1 page = 8 Kbytes Level 2 = 133 pages = 1 Mbyte Level 3 = 17,689 pages = 133 MBytes

27 נושאים נוספים על עצי B+ בפרק 9 הוספה ומחיקה של רשומות צריך לדאוג שכל צומת יישאר לפחות חצי מלא צריך לדאוג שהעץ יישאר מאוזן בנייה ראשונית של עץ B+ עבור קובץ נתון דחיסת מפתחות בעלים הפנימיים מגדיל את ה- fan-out ולכן מקטין את עומק העץ