செலவு அடிப்படையிலான வினவல் திட்டமிடலின் நுணுக்கங்களை ஆராயுங்கள், இது தரவுத்தள செயல்திறனை மேம்படுத்துவதற்கும், சிக்கலான அமைப்புகளில் திறமையான தரவு மீட்டலை உறுதி செய்வதற்கும் ஒரு முக்கியமான நுட்பமாகும்.
வினவல் தேர்வுமுறை: செலவு அடிப்படையிலான வினவல் திட்டமிடல் பற்றிய ஆழமான பார்வை
தரவுத்தள உலகில், திறமையான வினவல் செயல்படுத்தல் மிக முக்கியமானது. தரவுத்தொகுப்புகள் வளரும்போது மற்றும் வினவல்கள் மிகவும் சிக்கலானதாக மாறும் போது, அதிநவீன வினவல் தேர்வுமுறை நுட்பங்களுக்கான தேவை பெருகிய முறையில் முக்கியமானதாகிறது. செலவு அடிப்படையிலான வினவல் திட்டமிடல் (CBO) நவீன தரவுத்தள மேலாண்மை அமைப்புகளின் (DBMS) ஒரு மூலக்கல்லாக உள்ளது, இது கொடுக்கப்பட்ட வினவலுக்கான மிகவும் திறமையான செயலாக்க உத்தியை புத்திசாலித்தனமாகத் தேர்வு செய்ய உதவுகிறது.
வினவல் தேர்வுமுறை என்றால் என்ன?
வினவல் தேர்வுமுறை என்பது ஒரு SQL வினவலுக்கான மிகச் சிறந்த செயலாக்கத் திட்டத்தைத் தேர்ந்தெடுக்கும் செயல்முறையாகும். ஒரு வினவலை பல வழிகளில் இயக்க முடியும், இது முற்றிலும் மாறுபட்ட செயல்திறன் பண்புகளுக்கு வழிவகுக்கும். வினவல் தேர்வுமுறையின் குறிக்கோள் என்னவென்றால், இந்த சாத்தியக்கூறுகளைப் பகுப்பாய்வு செய்து, CPU நேரம், I/O செயல்பாடுகள் மற்றும் நெட்வொர்க் அலைவரிசை போன்ற வள நுகர்வைக் குறைக்கும் திட்டத்தைத் தேர்ந்தெடுப்பதாகும்.
வினவல் தேர்வுமுறை இல்லையென்றால், எளிய வினவல்கூட பெரிய தரவுத்தொகுப்புகளில் செயல்படுத்த அதிக நேரம் எடுக்கலாம். எனவே தரவுத்தள பயன்பாடுகளில் பதிலளிக்கும் தன்மை மற்றும் அளவிடுதலைப் பராமரிக்க திறமையான தேர்வுமுறை அவசியம்.
வினவல் தேர்வுமுறையின் பங்கு
ஒரு DBMS இன் ஒரு கூறு, அறிவிப்பு SQL வினவலை செயல்படுத்தக்கூடிய திட்டமாக மாற்றுவதற்கு வினவல் தேர்வுமுறை பொறுப்பாகும். இது பல கட்டங்களில் செயல்படுகிறது, அவற்றுள்:
- பகுப்பாய்வு மற்றும் சரிபார்ப்பு: தரவுத்தளத்தின் தொடரியல் மற்றும் சொற்பொருளுக்கு இணங்குவதை உறுதிப்படுத்த SQL வினவல் பகுப்பாய்வு செய்யப்படுகிறது. இது தொடரியல் பிழைகள், அட்டவணை இருப்பு மற்றும் நெடுவரிசை செல்லுபடியாகும் தன்மையை சரிபார்க்கிறது.
- வினவல் மறுஎழுத்து: வினவல் சமமானதாக மாற்றப்படுகிறது, ஆனால் மிகவும் திறமையான வடிவமாக இருக்கலாம். இதில் வெளிப்பாடுகளை எளிதாக்குதல், இயற்கணித மாற்றங்களைப் பயன்படுத்துதல் அல்லது தேவையற்ற செயல்பாடுகளை நீக்குதல் ஆகியவை அடங்கும். எடுத்துக்காட்டாக, `WHERE col1 = col2 AND col1 = col2` ஐ `WHERE col1 = col2` ஆக எளிதாக்கலாம்.
- திட்ட உருவாக்கம்: தேர்வுப்படுத்தி சாத்தியமான செயலாக்கத் திட்டங்களின் தொகுப்பை உருவாக்குகிறது. ஒவ்வொரு திட்டமும் வினவலை இயக்குவதற்கான ஒரு வித்தியாசமான வழியைக் குறிக்கிறது, அட்டவணை இணைப்புகளின் வரிசை, குறியீடுகளின் பயன்பாடு மற்றும் வரிசைப்படுத்தல் மற்றும் திரட்டலுக்கான வழிமுறைகளின் தேர்வு போன்ற அம்சங்களில் வேறுபடுகிறது.
- செலவு மதிப்பீடு: தரவைப் பற்றிய புள்ளிவிவர தகவல்களின் அடிப்படையில் ஒவ்வொரு திட்டத்தின் செலவையும் தேர்வுப்படுத்தி மதிப்பிடுகிறது (எ.கா., அட்டவணை அளவுகள், தரவு விநியோகங்கள், குறியீட்டுத் தேர்ந்தெடுக்கப்பட்டது). இந்த செலவு பொதுவாக மதிப்பிடப்பட்ட வள பயன்பாட்டின் அடிப்படையில் (I/O, CPU, நினைவகம்) வெளிப்படுத்தப்படுகிறது.
- திட்டத் தேர்வு: மிகக் குறைந்த மதிப்பிடப்பட்ட செலவைக் கொண்ட திட்டத்தைத் தேர்வுப்படுத்தி தேர்ந்தெடுக்கிறது. இந்த திட்டம் பின்னர் தரவுத்தள இயந்திரத்தால் தொகுக்கப்பட்டு இயக்கப்படுகிறது.
செலவு அடிப்படையிலான மற்றும் விதி அடிப்படையிலான தேர்வுமுறை
வினவல் தேர்வுமுறைக்கு இரண்டு முக்கிய அணுகுமுறைகள் உள்ளன: விதி அடிப்படையிலான தேர்வுமுறை (RBO) மற்றும் செலவு அடிப்படையிலான தேர்வுமுறை (CBO).
- விதி அடிப்படையிலான தேர்வுமுறை (RBO): வினவலை மாற்ற, RBO முன் வரையறுக்கப்பட்ட விதிகளை நம்பியுள்ளது. இந்த விதிகள் பொதுவாக தரவுத்தள வடிவமைப்பின் ஹியூரிஸ்டிக்ஸ் மற்றும் பொதுவான கொள்கைகளை அடிப்படையாகக் கொண்டவை. எடுத்துக்காட்டாக, ஒரு பொதுவான விதி, வினவல் செயலாக்கக் குழாயில் முடிந்தவரை ஆரம்பத்தில் தேர்வுகளை (WHERE clauses) செய்ய வேண்டும். CBO ஐ விட RBO செயல்படுத்த எளிதானது, ஆனால் உகந்த திட்டம் தரவின் பண்புகளைப் பெரிதும் சார்ந்து இருக்கும் சிக்கலான சூழ்நிலைகளில் இது குறைவாகவே பயனுள்ளதாக இருக்கும். RBO வரிசை அடிப்படையிலானது - விதிகள் முன் வரையறுக்கப்பட்ட வரிசையில் பயன்படுத்தப்படுகின்றன.
- செலவு அடிப்படையிலான தேர்வுமுறை (CBO): வெவ்வேறு செயலாக்கத் திட்டங்களின் செலவை மதிப்பிடுவதற்கு தரவைப் பற்றிய புள்ளிவிவரத் தகவல்களை CBO பயன்படுத்துகிறது. பின்னர் மிகக் குறைந்த மதிப்பிடப்பட்ட செலவைக் கொண்ட திட்டத்தைத் தேர்வு செய்கிறது. RBO ஐ விட CBO மிகவும் சிக்கலானது, ஆனால் இது பெரும்பாலும் கணிசமாக சிறந்த செயல்திறனை அடைய முடியும், குறிப்பாக பெரிய அட்டவணைகள், சிக்கலான இணைப்புகள் மற்றும் சீரற்ற தரவு விநியோகங்கள் தொடர்பான வினவல்களுக்கு. CBO தரவு இயக்கப்படுகிறது.
நவீன தரவுத்தள அமைப்புகள் முக்கியமாக CBO ஐப் பயன்படுத்துகின்றன, மேலும் குறிப்பிட்ட சூழ்நிலைகளுக்காக அல்லது ஒரு பின்னடைவு பொறிமுறையாக RBO விதிகளை பெரும்பாலும் பயன்படுத்துகின்றன.
செலவு அடிப்படையிலான வினவல் திட்டமிடல் எவ்வாறு செயல்படுகிறது
CBO இன் முக்கிய அம்சம் என்னவென்றால், வெவ்வேறு செயலாக்கத் திட்டங்களின் செலவை துல்லியமாக மதிப்பிடுவது ஆகும். இதில் பல முக்கிய படிகள் உள்ளன:
1. வேட்பாளர் செயலாக்கத் திட்டங்களை உருவாக்குதல்
வினவல் தேர்வுப்படுத்தி வினவலுக்கான சாத்தியமான செயலாக்கத் திட்டங்களின் தொகுப்பை உருவாக்குகிறது. இந்தத் தொகுதி மிகவும் பெரியதாக இருக்கலாம், குறிப்பாக பல அட்டவணைகள் மற்றும் இணைப்புகளை உள்ளடக்கிய சிக்கலான வினவல்களுக்கு. தேடல் இடத்தை ஒழுங்குபடுத்தவும், தெளிவாக உகந்ததாக இல்லாத திட்டங்களை உருவாக்குவதைத் தவிர்க்கவும் தேர்வுப்படுத்தி பல்வேறு நுட்பங்களைப் பயன்படுத்துகிறது. பொதுவான நுட்பங்களில் அடங்குவன:
- ஹியூரிஸ்டிக்ஸ்: தேடல் செயல்முறையை வழிநடத்த கட்டைவிரல் விதிகளைப் பயன்படுத்துதல். எடுத்துக்காட்டாக, அடிக்கடி அணுகும் நெடுவரிசைகளில் குறியீடுகளைப் பயன்படுத்தும் திட்டங்களுக்கு தேர்வுப்படுத்தி முன்னுரிமை அளிக்கலாம்.
- கிளை-மற்றும்-பந்தயம்: மீதமுள்ள எந்தவொரு திட்டத்தின் செலவின் கீழ் எல்லையை பராமரிக்கும்போது தேடல் இடத்தை முறையாக ஆராய்தல். இதுவரை கண்டுபிடிக்கப்பட்ட சிறந்த திட்டத்தின் செலவை விட கீழ் எல்லை அதிகமாக இருந்தால், தேர்வுப்படுத்தி தேடல் மரத்தின் தொடர்புடைய கிளையை ஒழுங்குபடுத்தலாம்.
- டைனமிக் நிரலாக்கம்: வினவல் தேர்வுமுறை சிக்கலை சிறிய துணைப் பிரச்சனைகளாகப் பிரித்து அவற்றை மீண்டும் மீண்டும் தீர்ப்பது. பல இணைப்புகளைக் கொண்ட வினவல்களை மேம்படுத்துவதற்கு இது பயனுள்ளதாக இருக்கும்.
செயலாக்கத் திட்டத்தின் பிரதிநிதித்துவம் தரவுத்தள அமைப்புகளுக்கு இடையில் மாறுபடும். ஒரு பொதுவான பிரதிநிதித்துவம் ஒரு மர அமைப்பு, அங்கு ஒவ்வொரு நோடும் ஒரு ஆபரேட்டரைக் குறிக்கிறது (எ.கா., `SELECT`, `JOIN`, `SORT`) மற்றும் விளிம்புகள் ஆபரேட்டர்களுக்கு இடையே தரவின் ஓட்டத்தைக் குறிக்கும். மரத்தின் இலை முனைகள் பொதுவாக வினவலில் ஈடுபட்டுள்ள அடிப்படை அட்டவணைகளை பிரதிபலிக்கின்றன.
எடுத்துக்காட்டு:
SELECT * FROM Orders o
JOIN Customers c ON o.CustomerID = c.CustomerID
WHERE c.Country = 'Germany';
சாத்தியமான செயலாக்கத் திட்டம் (எளிமைப்படுத்தப்பட்டது):
Join (Nested Loop Join)
/ \
Scan (Orders) Scan (Index Scan on Customers.Country)
2. திட்ட செலவுகளை மதிப்பிடுதல்
தேர்வுப்படுத்தி வேட்பாளர் திட்டங்களின் தொகுப்பை உருவாக்கியவுடன், ஒவ்வொரு திட்டத்தின் செலவையும் மதிப்பிட வேண்டும். இந்த செலவு பொதுவாக I/O செயல்பாடுகள், CPU நேரம் மற்றும் நினைவக நுகர்வு போன்ற மதிப்பிடப்பட்ட வள பயன்பாட்டின் அடிப்படையில் வெளிப்படுத்தப்படுகிறது.
செலவு மதிப்பீடு தரவைப் பற்றிய புள்ளிவிவரத் தகவல்களை பெரிதும் நம்பியுள்ளது, இதில்:
- அட்டவணை புள்ளிவிவரங்கள்: வரிசைகளின் எண்ணிக்கை, பக்கங்களின் எண்ணிக்கை, சராசரி வரிசை அளவு.
- நெடுவரிசை புள்ளிவிவரங்கள்: தனித்துவமான மதிப்புகளின் எண்ணிக்கை, குறைந்தபட்ச மற்றும் அதிகபட்ச மதிப்புகள், ஹிஸ்டோகிராம்கள்.
- குறியீட்டு புள்ளிவிவரங்கள்: தனித்துவமான விசைகளின் எண்ணிக்கை, B-மரத்தின் உயரம், கிளஸ்டரிங் காரணி.
இந்த புள்ளிவிவரங்கள் பொதுவாக DBMS ஆல் சேகரிக்கப்பட்டு பராமரிக்கப்படுகின்றன. செலவு மதிப்பீடுகள் துல்லியமாக இருப்பதை உறுதிப்படுத்த இந்த புள்ளிவிவரங்களை அவ்வப்போது புதுப்பிப்பது முக்கியம். பழைய புள்ளிவிவரங்கள் தேர்வுப்படுத்தி உகந்த திட்டங்களைத் தேர்ந்தெடுப்பதற்கு வழிவகுக்கும்.
இந்த புள்ளிவிவரங்களை செலவு மதிப்பீடுகளாக மொழிபெயர்க்க தேர்வுப்படுத்தி செலவு மாதிரிகளைப் பயன்படுத்துகிறது. ஒரு செலவு மாதிரி என்பது உள்ளீட்டு தரவு மற்றும் ஆபரேட்டரின் பண்புகளின் அடிப்படையில் வெவ்வேறு ஆபரேட்டர்களின் வள நுகர்வு முன்னறிவிக்கும் சூத்திரங்களின் தொகுப்பாகும். எடுத்துக்காட்டாக, ஒரு அட்டவணை ஸ்கானின் செலவு அட்டவணையில் உள்ள பக்கங்களின் எண்ணிக்கையின் அடிப்படையில் மதிப்பிடப்படலாம், அதே நேரத்தில் ஒரு குறியீட்டு லுக்பின் செலவு பி-மரத்தின் உயரம் மற்றும் குறியீட்டின் தேர்ந்தெடுக்கப்பட்ட தன்மை ஆகியவற்றின் அடிப்படையில் மதிப்பிடப்படலாம்.
வெவ்வேறு தரவுத்தள விற்பனையாளர்கள் வெவ்வேறு செலவு மாதிரிகளைப் பயன்படுத்தலாம், மேலும் ஒரே விற்பனையாளருக்குள் கூட வெவ்வேறு வகையான ஆபரேட்டர்கள் அல்லது தரவு கட்டமைப்புகளுக்கு வெவ்வேறு செலவு மாதிரிகள் இருக்கலாம். செலவு மாதிரியின் துல்லியம் வினவல் தேர்வுமுறையின் செயல்திறனில் ஒரு முக்கிய காரணியாகும்.
எடுத்துக்காட்டு:
`Orders` மற்றும் `Customers` ஆகிய இரண்டு அட்டவணைகளை ஒரு கூட்டில் லூப் சேர்ப்பைப் பயன்படுத்தி இணைப்பதற்கான செலவை மதிப்பிடுவதைக் கவனியுங்கள்.
- `Orders`-ல் உள்ள வரிசைகளின் எண்ணிக்கை: 1,000,000
- `Customers`-ல் உள்ள வரிசைகளின் எண்ணிக்கை: 10,000
- `Orders`-லிருந்து ஒரு வரிசையைப் படிப்பதற்கான மதிப்பிடப்பட்ட செலவு: 0.01 செலவு அலகுகள்
- `Customers`-லிருந்து ஒரு வரிசையைப் படிப்பதற்கான மதிப்பிடப்பட்ட செலவு: 0.02 செலவு அலகுகள்
`Customers` வெளிப்புற அட்டவணை என்றால், மதிப்பிடப்பட்ட செலவு:
(`Customers`-லிருந்து அனைத்து வரிசைகளையும் படிப்பதற்கான செலவு`) + (`Customers`-ன் வரிசைகளின் எண்ணிக்கை * `Orders`-லிருந்து பொருந்தும் வரிசைகளைப் படிப்பதற்கான செலவு`)
(10,000 * 0.02) + (10,000 * (பொருந்தும் ஒன்றைக் கண்டுபிடிப்பதற்கான செலவு))`
`Orders`-ல் இணைக்கும் நெடுவரிசையில் ஒரு பொருத்தமான குறியீடு இருந்தால், ஒரு பொருத்தத்தைக் கண்டுபிடிப்பதற்கான செலவு குறைவாக இருக்கும். இல்லையென்றால், செலவு அதிகமாக இருக்கும், இது வேறுபட்ட இணைப்பு வழிமுறையை மிகவும் திறமையானதாக ஆக்குகிறது.
3. உகந்த திட்டத்தைத் தேர்ந்தெடுப்பது
ஒவ்வொரு வேட்பாளர் திட்டத்தின் செலவையும் மதிப்பிட்ட பிறகு, தேர்வுப்படுத்தி மிகக் குறைந்த மதிப்பிடப்பட்ட செலவைக் கொண்ட திட்டத்தைத் தேர்ந்தெடுக்கிறது. இந்த திட்டம் பின்னர் செயல்படுத்தக்கூடிய குறியீடாக தொகுக்கப்பட்டு தரவுத்தள இயந்திரத்தால் செயல்படுத்தப்படுகிறது.
திட்டத் தேர்வு செயல்முறை கணக்கீட்டு ரீதியாக விலை உயர்ந்ததாக இருக்கலாம், குறிப்பாக பல சாத்தியமான செயலாக்கத் திட்டங்களைக் கொண்ட சிக்கலான வினவல்களுக்கு. தேடல் இடத்தை குறைக்க மற்றும் நியாயமான நேரத்தில் ஒரு நல்ல திட்டத்தைக் கண்டறிய தேர்வுப்படுத்தி ஹியூரிஸ்டிக்ஸ் மற்றும் கிளை-மற்றும்-பந்தயம் போன்ற நுட்பங்களைப் பயன்படுத்துகிறது.
தேர்ந்தெடுக்கப்பட்ட திட்டம் பொதுவாக பின்னர் பயன்படுத்த கேச் செய்யப்படுகிறது. அதே வினவல் மீண்டும் செயல்படுத்தப்பட்டால், தேர்வுப்படுத்தி கேச் செய்யப்பட்ட திட்டத்தைப் பெற்று வினவலை மீண்டும் தேர்வு செய்வதற்கான மேலதிகத்தை தவிர்க்கலாம். இருப்பினும், அடிப்படை தரவு கணிசமாக மாறினால் (எ.கா., பெரிய புதுப்பிப்புகள் அல்லது செருகுதல் காரணமாக), கேச் செய்யப்பட்ட திட்டம் உகந்ததாக இல்லாமல் போகலாம். இந்த வழக்கில், ஒரு புதிய திட்டத்தை உருவாக்க வினவலை மீண்டும் தேர்வு செய்ய தேர்வுப்படுத்திக்கு தேவைப்படலாம்.
செலவு அடிப்படையிலான வினவல் திட்டமிடலைப் பாதிக்கும் காரணிகள்
CBO இன் செயல்திறன் பல காரணிகளைப் பொறுத்தது:
- புள்ளிவிவரங்களின் துல்லியம்: வெவ்வேறு செயலாக்கத் திட்டங்களின் செலவை மதிப்பிடுவதற்கு தேர்வுப்படுத்தி துல்லியமான புள்ளிவிவரங்களை நம்பியுள்ளது. பழைய அல்லது தவறான புள்ளிவிவரங்கள் தேர்வுப்படுத்தி உகந்த திட்டங்களைத் தேர்ந்தெடுப்பதற்கு வழிவகுக்கும்.
- செலவு மாதிரிகளின் தரம்: தேர்வுப்படுத்தி பயன்படுத்தும் செலவு மாதிரிகள் வெவ்வேறு ஆபரேட்டர்களின் வள நுகர்வை துல்லியமாக பிரதிபலிக்க வேண்டும். தவறான செலவு மாதிரிகள் மோசமான திட்டத் தேர்வுகளுக்கு வழிவகுக்கும்.
- தேடல் இடத்தின் முழுமை: ஒரு நல்ல திட்டத்தைக் கண்டுபிடிக்க தேர்வுப்படுத்தி போதுமான அளவு தேடல் இடத்தை ஆராய வேண்டும். தேடல் இடம் மிகவும் குறைவாக இருந்தால், தேர்வுப்படுத்தி சிறந்த திட்டங்களைத் தவறவிடக்கூடும்.
- வினவல் சிக்கலானது: வினவல்கள் மிகவும் சிக்கலானதாக மாறும் போது (மேலும் இணைப்புகள், மேலும் துணை வினவல்கள், மேலும் திரட்டல்கள்) சாத்தியமான செயலாக்கத் திட்டங்களின் எண்ணிக்கை அதிவேகமாக வளர்கிறது. இது உகந்த திட்டத்தைக் கண்டுபிடிப்பதை கடினமாக்குகிறது, மேலும் வினவல் தேர்வுமுறைக்குத் தேவையான நேரத்தை அதிகரிக்கிறது.
- வன்பொருள் மற்றும் கணினி கட்டமைப்பு: CPU வேகம், நினைவக அளவு, வட்டு I/O அலைவரிசை மற்றும் நெட்வொர்க் தாமதம் போன்ற காரணிகள் வெவ்வேறு செயலாக்கத் திட்டங்களின் செலவை பாதிக்கலாம். செலவுகளை மதிப்பிடும்போது தேர்வுப்படுத்தி இந்தக் காரணிகளைக் கணக்கில் எடுத்துக்கொள்ள வேண்டும்.
செலவு அடிப்படையிலான வினவல் திட்டமிடலின் சவால்கள் மற்றும் வரம்புகள்
அதன் நன்மைகள் இருந்தபோதிலும், CBO பல சவால்களையும் வரம்புகளையும் எதிர்கொள்கிறது:
- சிக்கலானது: ஒரு CBO ஐ செயல்படுத்துவதும் பராமரிப்பதும் ஒரு சிக்கலான பணியாகும். தரவுத்தள உள்ளகங்கள், வினவல் செயலாக்க வழிமுறைகள் மற்றும் புள்ளிவிவர மாதிரியாக்கம் பற்றி ஆழமான புரிதல் தேவைப்படுகிறது.
- மதிப்பீட்டு பிழைகள்: செலவு மதிப்பீடு இயல்பாகவே சரியானது அல்ல. தேர்வுப்படுத்தி கிடைக்கக்கூடிய புள்ளிவிவரங்களின் அடிப்படையில் மட்டுமே மதிப்பீடுகளைச் செய்ய முடியும், மேலும் இந்த மதிப்பீடுகள் எப்போதும் துல்லியமாக இருக்காது, குறிப்பாக சிக்கலான வினவல்களுக்கு அல்லது தரவு விநியோகங்களை மாற்றியமைக்க.
- தேர்வுமுறை மேலதிகம்: வினவல் தேர்வுமுறை செயல்முறை வளங்களை நுகரும். மிக எளிய வினவல்களுக்கு, தேர்வுமுறை மேலதிகம் ஒரு சிறந்த திட்டத்தைத் தேர்ந்தெடுப்பதன் பலனை விட அதிகமாக இருக்கலாம்.
- திட்ட ஸ்திரத்தன்மை: வினவல், தரவு அல்லது கணினி கட்டமைப்பில் சிறிய மாற்றங்கள் சில சமயங்களில் தேர்வுப்படுத்தி ஒரு வித்தியாசமான செயலாக்கத் திட்டத்தைத் தேர்ந்தெடுப்பதற்கு வழிவகுக்கும். புதிய திட்டம் மோசமாகச் செயல்பட்டால் அல்லது பயன்பாட்டு குறியீட்டால் செய்யப்பட்ட அனுமானங்களைச் செல்லாததாக்கினால் இது சிக்கலாக இருக்கலாம்.
- உண்மையான உலக அறிவு இல்லாமை: CBO புள்ளிவிவர மாதிரியலை அடிப்படையாகக் கொண்டது. இது உண்மையான உலக பணிச்சுமை அல்லது தரவு பண்புகள் அனைத்தையும் கைப்பற்றாது. எடுத்துக்காட்டாக, உகந்த செயலாக்கத் திட்டத்தைப் பாதிக்கக்கூடிய குறிப்பிட்ட தரவு சார்புகள் அல்லது வணிக விதிகளைப் பற்றி தேர்வுப்படுத்திக்கு தெரியாமல் இருக்கலாம்.
வினவல் தேர்வுமுறைக்கான சிறந்த நடைமுறைகள்
உகந்த வினவல் செயல்திறனை உறுதிப்படுத்த, பின்வரும் சிறந்த நடைமுறைகளைக் கவனியுங்கள்:
- புள்ளிவிவரங்களை புதுப்பித்த நிலையில் வைத்திருங்கள்: தரவைப் பற்றிய துல்லியமான தகவல்களை தேர்வுப்படுத்தி வைத்திருப்பதை உறுதிப்படுத்த தரவுத்தள புள்ளிவிவரங்களை தவறாமல் புதுப்பிக்கவும். பெரும்பாலான DBMS கள் புள்ளிவிவரங்களை தானாக புதுப்பிப்பதற்கான கருவிகளை வழங்குகின்றன.
- குறியீடுகளை புத்திசாலித்தனமாகப் பயன்படுத்துங்கள்: அடிக்கடி வினவப்படும் நெடுவரிசைகளில் குறியீடுகளை உருவாக்கவும். இருப்பினும், மிக அதிகமான குறியீடுகளை உருவாக்குவதைத் தவிர்க்கவும், ஏனெனில் இது எழுத்து நடவடிக்கைகளின் மேலதிகத்தை அதிகரிக்கும்.
- திறமையான வினவல்களை எழுதுங்கள்: தொடர்புபடுத்தப்பட்ட துணை வினவல்கள் மற்றும் `SELECT *` போன்ற வினவல் தேர்வுமுறையைத் தடுக்கக்கூடிய கட்டமைப்புகளைப் பயன்படுத்துவதைத் தவிர்க்கவும். வெளிப்படையான நெடுவரிசை பட்டியல்களைப் பயன்படுத்துங்கள் மற்றும் தேர்வுப்படுத்தி புரிந்து கொள்ள எளிதான வினவல்களை எழுதுங்கள்.
- செயலாக்கத் திட்டங்களைப் புரிந்து கொள்ளுங்கள்: சாத்தியமான தடைகளை அடையாளம் காண வினவல் செயலாக்கத் திட்டங்களை எவ்வாறு ஆராய்வது என்பதை அறிக. பெரும்பாலான DBMS கள் செயலாக்கத் திட்டங்களை காட்சிப்படுத்தவும் பகுப்பாய்வு செய்யவும் கருவிகளை வழங்குகின்றன.
- வினவல் அளவுருக்களை மாற்றவும்: செயல்திறனை மேம்படுத்த வெவ்வேறு வினவல் அளவுருக்கள் மற்றும் தரவுத்தள கட்டமைப்பு அமைப்புகளுடன் பரிசோதனை செய்யுங்கள். அளவுருக்களை மாற்றுவதற்கான வழிகாட்டுதலுக்காக உங்கள் DBMS ஆவணங்களைப் பார்க்கவும்.
- வினவல் குறிப்புகளைக் கவனியுங்கள்: சில சந்தர்ப்பங்களில், சிறந்த திட்டத்தை நோக்கி தேர்வுப்படுத்திக்கு வழிகாட்ட குறிப்புகளை வழங்க வேண்டியிருக்கலாம். இருப்பினும், குறிப்புகளை குறைவாகப் பயன்படுத்துங்கள், ஏனெனில் அவை வினவல்களை குறைவாக எடுத்துச் செல்லக்கூடியதாகவும், பராமரிக்க கடினமாகவும் ஆக்குகின்றன.
- வழக்கமான செயல்திறன் கண்காணிப்பு: செயல்திறன் சிக்கல்களை முன்னெச்சரிக்கையாகக் கண்டறிந்து தீர்க்க, வினவல் செயல்திறனை தவறாமல் கண்காணிக்கவும். மெதுவான வினவல்களை அடையாளம் காணவும், வள பயன்பாட்டைக் கண்காணிக்கவும் செயல்திறன் கண்காணிப்பு கருவிகளைப் பயன்படுத்தவும்.
- சரியான தரவு மாதிரியாக்கம்: நல்ல வினவல் செயல்திறனுக்காக ஒரு திறமையான தரவு மாதிரி முக்கியமானது. தேவையற்றவற்றை குறைக்க மற்றும் தரவு ஒருமைப்பாட்டை மேம்படுத்த உங்கள் தரவை இயல்புநிலைக்கு மாற்றவும். செயல்திறன் காரணங்களுக்காக போதுமானதாக இருக்கும்போது டீநோர்மலைசேஷனை கவனியுங்கள், ஆனால் வர்த்தகத்தைப் பற்றி அறிந்திருங்கள்.
செலவு அடிப்படையிலான தேர்வுமுறையின் எடுத்துக்காட்டுகள்
CBO வினவல் செயல்திறனை எவ்வாறு மேம்படுத்த முடியும் என்பதற்கான சில குறிப்பிட்ட எடுத்துக்காட்டுகளைப் பார்ப்போம்:
எடுத்துக்காட்டு 1: சரியான இணைவு வரிசையைத் தேர்ந்தெடுப்பது
பின்வரும் வினவலைக் கவனியுங்கள்:
SELECT * FROM Orders o
JOIN Customers c ON o.CustomerID = c.CustomerID
JOIN Products p ON o.ProductID = p.ProductID
WHERE c.Country = 'Germany';
தேர்வுப்படுத்தி வெவ்வேறு இணைப்பு வரிசைகளைத் தேர்ந்தெடுக்கலாம். எடுத்துக்காட்டாக, அது முதலில் `Orders` மற்றும் `Customers` ஐ இணைக்கலாம், பின்னர் முடிவை `Products` உடன் இணைக்கலாம். அல்லது அது முதலில் `Customers` மற்றும் `Products` ஐ இணைக்கலாம், பின்னர் முடிவை `Orders` உடன் இணைக்கலாம்.
உகந்த இணைப்பு வரிசை அட்டவணைகளின் அளவையும் `WHERE` பிரிவின் தேர்ந்தெடுக்கப்பட்ட தன்மையையும் பொறுத்தது. `Customers` ஒரு சிறிய அட்டவணை என்றால், `WHERE` பிரிவு வரிசைகளின் எண்ணிக்கையை கணிசமாகக் குறைக்கிறது என்றால், முதலில் `Customers` மற்றும் `Products` ஐ இணைத்து, பின்னர் முடிவை `Orders` உடன் இணைப்பது மிகவும் திறமையானதாக இருக்கும். ஒவ்வொரு சாத்தியமான இணைப்பு வரிசையின் இடைநிலை முடிவுத் தொகுப்பு அளவுகளை CBO மதிப்பிடுகிறது.
எடுத்துக்காட்டு 2: குறியீட்டுத் தேர்வு
பின்வரும் வினவலைக் கவனியுங்கள்:
SELECT * FROM Employees
WHERE Department = 'Sales' AND Salary > 50000;
தேர்வுப்படுத்தி `Department` நெடுவரிசையில் குறியீடு, `Salary` நெடுவரிசையில் குறியீடு அல்லது இரண்டு நெடுவரிசைகளிலும் ஒரு கூட்டு குறியீடு பயன்படுத்த வேண்டுமா என்பதைத் தேர்ந்தெடுக்கலாம். தேர்வு `WHERE` பிரிவுகளின் தேர்ந்தெடுக்கப்பட்ட தன்மை மற்றும் குறியீடுகளின் பண்புகளைப் பொறுத்தது.
`Department` நெடுவரிசை உயர் தேர்ந்தெடுக்கப்பட்ட தன்மையைக் கொண்டிருந்தால் (அதாவது, 'Sales' துறையைச் சேர்ந்த மிகக் குறைந்த எண்ணிக்கையிலான பணியாளர்கள் மட்டுமே உள்ளனர்), மேலும் `Department` நெடுவரிசையில் ஒரு குறியீடு இருந்தால், அந்த குறியீட்டைப் பயன்படுத்தி 'Sales' துறையில் உள்ள ஊழியர்களை விரைவாக மீட்டெடுக்க தேர்வுப்படுத்தி தேர்வு செய்யலாம், பின்னர் `Salary` நெடுவரிசையின் அடிப்படையில் முடிவுகளை வடிகட்டலாம்.
CBO நெடுவரிசைகளின் கார்டினாலிட்டி, குறியீட்டு புள்ளிவிவரங்கள் (கிளஸ்டரிங் காரணி, தனித்துவமான விசைகளின் எண்ணிக்கை) மற்றும் வெவ்வேறு குறியீடுகளால் திருப்பித் தரப்பட்ட வரிசைகளின் மதிப்பிடப்பட்ட எண்ணிக்கை ஆகியவற்றைக் கருத்தில் கொண்டு சிறந்ததைத் தேர்ந்தெடுக்கிறது.
எடுத்துக்காட்டு 3: சரியான இணைப்பு வழிமுறையைத் தேர்ந்தெடுப்பது
தேர்வுப்படுத்தி கூட்டில் லூப் சேர்ப்பு, ஹாஷ் சேர்ப்பு மற்றும் மெர்ஜ் சேர்ப்பு போன்ற வெவ்வேறு இணைப்பு வழிமுறைகளைத் தேர்ந்தெடுக்கலாம். ஒவ்வொரு வழிமுறையும் வெவ்வேறு செயல்திறன் பண்புகளைக் கொண்டுள்ளது மற்றும் வெவ்வேறு சூழ்நிலைகளுக்கு மிகவும் பொருத்தமானது.
- கூட்டில் லூப் சேர்ப்பு: சிறிய அட்டவணைகளுக்கு அல்லது அட்டவணைகளில் ஒன்றின் இணைக்கும் நெடுவரிசையில் ஒரு குறியீடு கிடைக்கும்போது பொருத்தமானது.
- ஹாஷ் சேர்ப்பு: பெரிய அட்டவணைகளுக்கு நன்கு பொருந்தும், போதுமான நினைவகம் கிடைக்கும்போது.
- மெர்ஜ் சேர்ப்பு: உள்ளீட்டு அட்டவணைகள் இணைக்கும் நெடுவரிசையில் வரிசைப்படுத்தப்பட வேண்டும். அட்டவணைகள் ஏற்கனவே வரிசைப்படுத்தப்பட்டிருந்தால் அல்லது வரிசைப்படுத்துவது ஒப்பீட்டளவில் விலை குறைவாக இருந்தால் இது திறமையானதாக இருக்கும்.
CBO அட்டவணைகளின் அளவு, குறியீடுகளின் கிடைக்கும் தன்மை மற்றும் கிடைக்கக்கூடிய நினைவகத்தின் அளவைக் கருத்தில் கொண்டு மிகவும் திறமையான இணைப்பு வழிமுறையைத் தேர்ந்தெடுக்கிறது.
வினவல் தேர்வுமுறையின் எதிர்காலம்
வினவல் தேர்வுமுறை ஒரு வளர்ந்து வரும் துறையாகும். தரவுத்தளங்கள் அளவு மற்றும் சிக்கலில் வளர்ந்து வருவதால், புதிய வன்பொருள் மற்றும் மென்பொருள் தொழில்நுட்பங்கள் வெளிவரும்போது, வினவல் தேர்வுமுறைகள் புதிய சவால்களைச் சந்திக்க வேண்டும்.
வினவல் தேர்வுமுறையில் சில வளர்ந்து வரும் போக்குகள் அடங்கும்:
- செலவு மதிப்பீட்டிற்கான இயந்திர கற்றல்: செலவு மதிப்பீட்டின் துல்லியத்தை மேம்படுத்த இயந்திர கற்றல் நுட்பங்களைப் பயன்படுத்துதல். இயந்திர கற்றல் மாதிரிகள் கடந்த வினவல் செயலாக்க தரவிலிருந்து புதிய வினவல்களின் செலவை மிகவும் துல்லியமாக கணிக்க கற்றுக்கொள்ள முடியும்.
- அனுசரிப்பு வினவல் தேர்வுமுறை: வினவல் செயல்திறனைத் தொடர்ந்து கண்காணித்து, கவனிக்கப்பட்ட நடத்தையின் அடிப்படையில் செயலாக்கத் திட்டத்தை மாறும் வகையில் சரிசெய்வது. இது கணிக்க முடியாத பணிச்சுமைகளை அல்லது தரவு பண்புகளை மாற்றுவதை கையாளுவதற்கு குறிப்பாக பயனுள்ளதாக இருக்கும்.
- கிளவுட்-நேட்டிவ் வினவல் தேர்வுமுறை: கிளவுட்-சார்ந்த தரவுத்தள அமைப்புகளுக்காக வினவல்களை தேர்வு செய்தல், விநியோகிக்கப்பட்ட சேமிப்பு மற்றும் மீள் அளவிடுதல் போன்ற கிளவுட் உள்கட்டமைப்பின் குறிப்பிட்ட பண்புகளைக் கணக்கில் எடுத்துக்கொள்வது.
- புதிய தரவு வகைகளுக்கான வினவல் தேர்வுமுறை: JSON, XML மற்றும் இடஞ்சார்ந்த தரவு போன்ற புதிய தரவு வகைகளைக் கையாள வினவல் தேர்வுமுறைகளை நீட்டித்தல்.
- சுய-சரிப்படுத்தும் தரவுத்தளங்கள்: பணிச்சுமை முறைகள் மற்றும் கணினி பண்புகளின் அடிப்படையில் தானாகவே தங்களைச் சரிசெய்துகொள்ளும் தரவுத்தள அமைப்புகளை உருவாக்குதல், கையேடு தலையீட்டின் தேவையை குறைத்தல்.
முடிவு
செலவு அடிப்படையிலான வினவல் திட்டமிடல் தரவுத்தள செயல்திறனை மேம்படுத்துவதற்கான ஒரு முக்கியமான நுட்பமாகும். வெவ்வேறு செயலாக்கத் திட்டங்களின் செலவை கவனமாக மதிப்பிடுவதன் மூலமும், மிகவும் திறமையான விருப்பத்தைத் தேர்ந்தெடுப்பதன் மூலமும், CBO வினவல் செயலாக்க நேரத்தை கணிசமாகக் குறைத்து, ஒட்டுமொத்த கணினி செயல்திறனை மேம்படுத்த முடியும். CBO சவால்களையும் வரம்புகளையும் எதிர்கொண்டாலும், இது நவீன தரவுத்தள மேலாண்மை அமைப்புகளின் மூலக்கல்லாக உள்ளது, மேலும் நடந்து வரும் ஆராய்ச்சி மற்றும் மேம்பாடு தொடர்ந்து அதன் செயல்திறனை மேம்படுத்துகிறது.
CBO இன் கொள்கைகளைப் புரிந்துகொள்வதும், வினவல் தேர்வுமுறைக்கான சிறந்த நடைமுறைகளைப் பின்பற்றுவதும், மிகவும் தேவைப்படும் பணிச்சுமைகளையும் கூட கையாளக்கூடிய உயர் செயல்திறன் கொண்ட தரவுத்தள பயன்பாடுகளை உருவாக்க உங்களுக்கு உதவும். வினவல் தேர்வுமுறையில் சமீபத்திய போக்குகளைப் பற்றி அறிந்து கொள்வது, உங்கள் தரவுத்தள அமைப்புகளின் செயல்திறன் மற்றும் அளவிடுதலை மேலும் மேம்படுத்த புதிய தொழில்நுட்பங்களையும் நுட்பங்களையும் பயன்படுத்த உதவும்.