డేటాబేస్ పనితీరును మెరుగుపరచడానికి అనేక మార్గాలు ఉన్నప్పటికీ, ఏదైనా డేటాబేస్కు ఒక లక్షణం దాదాపు సార్వత్రికమైనది. డేటాబేస్ ఇండెక్స్లు డేటా స్ట్రక్చర్లు లేదా ఆబ్జెక్ట్లు, ఇవి టేబుల్ నుండి డేటా రిట్రీవల్ వేగాన్ని పెంచడానికి ఉపయోగించబడతాయి.
సరిగ్గా ఉపయోగించినప్పుడు, డేటాబేస్ సూచికలు లక్ష్య డేటా, లేఅవుట్, అందుబాటులో ఉన్న వనరులు మొదలైన వాటిపై ఆధారపడి ప్రశ్న యొక్క వేగాన్ని దాదాపు సగానికి తగ్గించగలవు.
ఈ ట్యుటోరియల్లో, ఇండెక్స్ చేయబడిన కాలమ్లో నకిలీ విలువల లభ్యతను నిరోధించడానికి ఒరాకిల్ డేటాబేస్లలో ప్రత్యేక సూచికలతో ఎలా పని చేయాలో మీరు నేర్చుకోబోతున్నారు.
ఒరాకిల్ ప్రత్యేక సూచిక
ఇచ్చిన నిలువు వరుసలో నకిలీ అడ్డు వరుసలు నిల్వ చేయబడలేదని నిర్ధారించుకోవడానికి మేము ప్రత్యేకమైన సూచికను ఉపయోగించవచ్చు. ఇచ్చిన సూచిక యొక్క నిలువు వరుస ప్రత్యేక నియమాన్ని కలిగి ఉన్నట్లయితే, ఆ నిలువు వరుసలో ఒకే విధమైన విలువతో రెండు అడ్డు వరుసలను జోడించడానికి ప్రయత్నించడం వలన ఒక ప్రత్యేక నిరోధక ఉల్లంఘనను సూచించే లోపం ఏర్పడుతుంది.
ఒరాకిల్లో, కింది వాటిలో చూపిన విధంగా క్రియేట్ UNIQUE ఇండెక్స్ స్టేట్మెంట్ని ఉపయోగించి మనం ప్రత్యేకమైన సూచికను సృష్టించవచ్చు:
పట్టిక_పేరుపై ప్రత్యేక సూచిక సూచిక_పేరును సృష్టించండి ( నిలువు వరుసలు ) ;
సూచికలో చేర్చబడిన నిలువు వరుసలు ఏ నకిలీ అడ్డు వరుసలను అంగీకరించవు.
యూనిక్ టేబుల్ ఇలస్ట్రేషన్ యొక్క ఉదాహరణ
ప్రత్యేకమైన సూచికను ఎలా సృష్టించాలో మరియు ఉపయోగించాలో ప్రదర్శించడానికి, క్రింది పట్టికను తీసుకోండి:
ఎంచుకోండి * నమూనా_డేటా నుండి;
అవుట్పుట్ :
మొదటి_పేరు నిలువు వరుసలో ఒక ప్రత్యేక సూచికను సృష్టించండి
మొదటి_పేరు నిలువు వరుసను ఉపయోగించి ప్రత్యేక సూచికను ఎలా సృష్టించాలో క్రింది ఉదాహరణ ప్రకటన చూపుతుంది:
నమూనా_డేటాలో మొదటి_పేరు_ప్రత్యేకమైన ప్రత్యేక సూచికను సృష్టించండి ( మొదటి పేరు ) ;ఈ సూచికను ప్రారంభించడం ద్వారా, మేము ఒకే మొదటి పేరుతో ఒకటి కంటే ఎక్కువ వరుసలను చొప్పించలేము.
ఉదాహరణకు కింది ఇన్సర్ట్ స్టేట్మెంట్ తీసుకోండి:
నమూనా_డేటాలోకి చొప్పించండి ( id , మొదటి_పేరు, ip_address, btc_address, credit_card, identifier )విలువలు ( పదకొండు , 'వాలాస్' , '169.158.70.77' , '1CNz5d1d5SC8SaR6dFSVihwztqYx5Fg77q' , '4017955174552' ,
'26811d77-0a3a-4397-bc33-f7835f7c7ab9' ) ;
మేము ఇచ్చిన ఇన్సర్ట్ స్టేట్మెంట్ను అమలు చేస్తే, కింది వాటిలో చూపిన విధంగా మనం ఎర్రర్ను పొందాలి:
[ 23000 ] [ 1 ] ORA-00001: ప్రత్యేక ప్రతిబంధకం ( HR.FIRST_NAME_UNIQUE ) ఉల్లంఘించారుమనం చూడగలిగినట్లుగా, ఇచ్చిన విలువను చొప్పించడం మొదటి_పేరు నిలువు వరుస కోసం ప్రత్యేక పరిమితిని ఉల్లంఘిస్తుంది.
రెండు నిలువు వరుసలతో ఒక ప్రత్యేక సూచికను సృష్టించండి
మేము ఒకటి కంటే ఎక్కువ నిలువు వరుసలను కలిగి ఉన్న ప్రత్యేక సూచికను కూడా కలిగి ఉండవచ్చు. కింది ఉదాహరణలో, మేము మొదటి_పేరు మరియు io_address నిలువు వరుసలను ఉపయోగించి ప్రత్యేక సూచికను సృష్టిస్తాము:
నమూనా_డేటాపై ప్రత్యేక సూచిక వెరిఫై_నిలువులను సృష్టించండి ( మొదటి_పేరు, ip_address ) ;అదేవిధంగా, మొదటి_పేరు లేదా ip_address నిలువు వరుసకు నకిలీ విలువలను జోడించడం వలన ప్రత్యేక సూచిక ఉల్లంఘన లోపాలు ఏర్పడతాయి.
స్వయంచాలక ప్రత్యేక సూచికలు
మీరు ప్రాథమిక కీ లేదా ప్రత్యేక పరిమితితో టేబుల్ కాలమ్ను ప్రకటించినప్పుడు ఏమి జరుగుతుందని మీరు ఎప్పుడైనా ఆలోచిస్తున్నారా?
సరళంగా చెప్పాలంటే, మీరు ఒక నిలువు వరుసను పట్టిక యొక్క ప్రాథమిక కీగా సెట్ చేస్తే లేదా ఇచ్చిన కాలమ్కి ప్రత్యేక పరిమితిని కేటాయించినట్లయితే, డేటాబేస్ ఇంజిన్ స్వయంచాలకంగా ఆ నిలువు వరుస కోసం ఒక ప్రత్యేక సూచికను సృష్టిస్తుంది.
ఇది ఆ నిలువు వరుసలో నకిలీ విలువను చొప్పించలేదని నిర్ధారిస్తుంది.
ఉదాహరణకు కింది ప్రకటనను తీసుకోండి:
పట్టిక నమూనా_డేటాను సృష్టించండి(
id సంఖ్య,
మొదటి_పేరు varchar2 ( యాభై ) ,
ip_address varchar2 ( ఇరవై ) ,
btc_address varchar2 ( యాభై ) ,
క్రెడిట్_కార్డ్ varchar2 ( యాభై ) ,
ఐడెంటిఫైయర్ varchar2 ( 40 ) ,
పరిమితి నమూనా_pk ప్రాథమిక కీ ( id )
) ;
మునుపటి ఉదాహరణలో, మేము పట్టికను సృష్టించాము మరియు id కాలమ్ను పట్టిక యొక్క ప్రాథమిక కీగా సెట్ చేస్తాము. అప్పుడు, ఆ కాలమ్తో అనుబంధించబడిన ప్రత్యేక పరిమితిని వీక్షించడానికి (స్వయంచాలకంగా రూపొందించబడింది), మేము కింది ఆదేశాన్ని అమలు చేయవచ్చు:
ఎంచుకోండి ఇండెక్స్_పేరు, సూచిక_రకం, దృశ్యమానత, స్థితి, TABLE_NAMEఅన్ని_ఇండెక్స్ల నుండి TABLE_NAME = 'SAMPLE_DATA' ;
ఫలితాలు :
ఈ సందర్భంలో, id కాలమ్ కోసం డేటాబేస్ ఇంజిన్ ద్వారా సృష్టించబడిన ఏకైక సూచికను మనం చూడవచ్చు.
ముగింపు
ఈ గైడ్లో, ఒరాకిల్ డేటాబేస్లో ప్రత్యేకమైన సూచికలను ఎలా సృష్టించాలో మరియు ఉపయోగించాలో మీరు నేర్చుకున్నారు. మీరు టేబుల్ కాలమ్కు ప్రాథమిక కీని లేదా ప్రత్యేక పరిమితిని కేటాయించినప్పుడు ఏమి జరుగుతుందో కూడా మీరు తెలుసుకున్నారు.