אינדקס ייחודי של אורקל

Yndqs Yyhwdy Sl Wrql



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

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

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







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



אינדקס ייחודי של אורקל

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



ב-Oracle, אנו יכולים ליצור אינדקס ייחודי באמצעות ההצהרה CREATE UNIQUE INDEX כפי שמוצג בהבאה:





צור אינדקס ייחודי index_name ON table_name ( עמודות ) ;

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

דוגמה לאיור טבלה ייחודי

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



בחר * FROM sample_data;

תְפוּקָה :

צור אינדקס ייחודי בעמודה First_Name

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

צור אינדקס ייחודי first_name_unique על sample_data ( שם פרטי ) ;

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

קח לדוגמה את הצהרת ההוספה הבאה:

הכנס לתוך sample_data ( תְעוּדַת זֶהוּת , first_name, ip_address, btc_address, credit_card, מזהה )
ערכים ( אחת עשרה , 'וואלס' , '169.158.70.77' , '1CNz5d1d5SC8SaR6dFSVihwztqYx5Fg77q' , '4017955174552' ,
'26811d77-0a3a-4397-bc33-f7835f7c7ab9' ) ;

אם נריץ את משפט ה-insert הנתון, אנו אמורים לקבל שגיאה כפי שמוצגת בהודעה הבאה:

[ 23000 ] [ 1 ] ORA-00001: אילוץ ייחודי ( HR.FIRST_NAME_UNIQUE ) הופר

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

צור אינדקס ייחודי עם שתי עמודות

יכול להיות לנו גם אינדקס ייחודי המורכב מיותר מעמודה אחת. בדוגמה הבאה, אנו יוצרים אינדקס ייחודי באמצעות העמודות first_name ו-io_address:

צור אינדקס אימות_עמודות ייחודיות ב- sample_data ( first_name, ip_address ) ;

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

אינדקסים ייחודיים אוטומטיים

האם תהיתם פעם מה קורה כשאתם מצהירים על עמודת טבלה עם מפתח ראשי או אילוץ ייחודי?

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

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

קח לדוגמא את המשפט הבא:

ליצור טבלה sample_data
(
תְעוּדַת זֶהוּת מספר,
first_name  varchar2 ( חמישים ) ,
ip_address  varchar2 ( עשרים ) ,
btc_address varchar2 ( חמישים ) ,
כרטיס אשראי varchar2 ( חמישים ) ,
מזהה  varchar2 ( 40 ) ,
constraint sample_pk מפתח ראשי ( תְעוּדַת זֶהוּת )
) ;

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

בחר index_name, index_type, visibility, status, TABLE_NAME
מ-all_indexes שבו TABLE_NAME = 'SAMPLE_DATA' ;

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

סיכום

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