Oracle Create Index

Oracle Create Index



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

דוגמה אחת למקום שבו אינדקס מסד נתונים יהיה שימושי היא במערכת ניהול קשרי לקוחות.







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



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



כדי להקיף את זה, אנחנו יכולים להשתמש באינדקס של מסד נתונים.





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

במדריך זה, תלמד כיצד להשתמש בפקודה CREATE INDEX במסד הנתונים של Oracle כדי לאתחל אינדקס חדש.



אורקל צור הצהרת אינדקס

הבא מציג את התחביר של הצהרת CREATE INDEX במסדי נתונים של אורקל:

CREATE INDEX index_name
ON table_name (עמודה1, עמודה2, ...);

התחביר לעיל יוצר אינדקס בשם index_name בטבלה עם השם table_name תוך שימוש בעמודות שצוינו (עמודה1, עמודה2 וכו') כמפתח לאינדקס.

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

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

הבה נבחן כמה דוגמאות כיצד אנו יכולים להשיג זאת.

דוגמה ליצירת אינדקס של אורקל

נניח שיש לנו טבלה המכילה מידע על העובדים כפי שמוצג בפלט למטה:

בחר שם_שם, שם_משפחה, משכורת, תאריך שכירה מ-EMPLOYEES;

Oracle יצירת אינדקס עבור עמודה בודדת

נניח שאנו רוצים ליצור אינדקס באמצעות העמודה first_name. אנו יכולים להריץ שאילתה כפי שמוצג:

צור אינדקס first_name_lookup על EMPLOYEES(FIRST_NAME);

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

לאחר יצירת האינדקס, נוכל להשתמש בו כדי לחפש עובד ספציפי כפי שמוצג:

SELECT first_name, last_name, salary, hir_date
מעובדים
WHERE first_name = 'וויליאם';

תוֹצָאָה:

ללא האינדקס first_name_lookup, מערכת מסד הנתונים תצטרך לסרוק את כל טבלת EMPLOYEES כדי למצוא את כל השורות שבהן העמודה FIRST_NAME שווה ל'וויליאם'. עם זאת, עם האינדקס במקום, מערכת מסד הנתונים יכולה לחפש במהירות את השורות ב- אינדקס באמצעות הערך 'John' כמפתח ולאחר מכן אחזר את השורות המבוקשות מהטבלה, שתהיה הרבה יותר מהירה.

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

הסבר תוכנית עבור SELECT first_name, last_name, salary, hir_date
מעובדים
WHERE first_name = 'וויליאם';

תוכנית שאילתות שהתקבלה:

דוגמה 2 - Oracle Create Index עם מספר עמודות

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

אנו יכולים להשתמש בקוד כפי שמוצג:

צור אינדקס multi_lookup על EMPLOYEES(FIRST_NAME, LAST_NAME);

משפט CREATE INDEX זה יוצר אינדקס בשם multi_lookup בטבלת EMPLOYEES, תוך שימוש בעמודות FIRST_NAME ו-LAST_NAME כמפתח לאינדקס.

לאחר היצירה, נוכל להשתמש באינדקס הזה כפי שמוצג בשאילתה לדוגמה, כפי שמוצג:

SELECT first_name, last_name, salary, hir_date
מעובדים
WHERE first_name = 'וויליאם' ו-last_name = 'סמית';

ערך המתקבל:

ושם, יש לך שיטה להאיץ את שאילתות מסד הנתונים שלך על ידי שימוש באינדקסים כדי להגביל את היקף החיפוש.

סיכום

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