SQL சர்வரில் மேஸ்டரிங் டேபிள் மாற்றங்கள்: ஒரு படி-படி-படி வழிகாட்டி
சில நேரங்களில், பெரிய தரவுத்தொகுப்புகளுடன் பணிபுரிவது, ஒரே நேரத்தில் நூறு பணிகளை ஏமாற்றுவது போல் உணரலாம். சமீபத்தில், ஒரு மில்லியனுக்கும் அதிகமான வரிசைகளைக் கொண்ட அட்டவணையில் ஒரு நெடுவரிசையைச் சேர்க்க வேண்டிய சூழ்நிலையில் நான் என்னைக் கண்டேன். மேலோட்டமாக இது ஒரு எளிய பணியாகத் தோன்றினாலும், பல SQL சர்வர் பயனர்கள் எதிர்கொள்ளும் ஒரு சாலைத் தடுப்பில் நான் விரைவாக ஓடினேன்: பயங்கரமான "தவறான நெடுவரிசைப் பெயர்" பிழை. 🧐
எனது ALTER TABLE மற்றும் UPDATE கட்டளைகளை ஒன்றாகச் செயல்படுத்த பல முயற்சிகளை இயக்கிய பிறகு, பிரச்சனை தர்க்கத்தில் இல்லை, ஆனால் எனது வினவல்களின் வரிசையில் உள்ளது என்பதை உணர்ந்தேன். SQL சேவையகத்திற்கு நீங்கள் முதலில் நெடுவரிசையைச் சேர்த்து, எந்தத் தரவையும் புதுப்பிக்கும் முன் அந்த மாற்றத்தைச் செய்ய வேண்டும். அவ்வாறு செய்யத் தவறினால், புதுப்பிப்பு செயல்படுத்தப்படும் நேரத்தில் புதிதாக சேர்க்கப்பட்ட நெடுவரிசையை கணினி அடையாளம் காணாததால் பிழை ஏற்படுகிறது.
எடுத்துக்காட்டாக, ஒரு பெரிய வாடிக்கையாளர் தரவுத்தளத்திற்கான குறிப்பிட்ட தேதி வரம்பின் அடிப்படையில் "IS_CURRENT" கொடியைப் புதுப்பிக்கும் பணியை நீங்கள் பெற்றுள்ளீர்கள் என்று கற்பனை செய்து பாருங்கள். நீங்கள் நெடுவரிசையைச் சேர்த்து, வரிசைகளை ஒற்றை ஸ்கிரிப்ட்டில் புதுப்பிக்க முயற்சித்தால், SQL சர்வர் "தவறான நெடுவரிசைப் பெயர்" பிழையை ஏற்படுத்தக்கூடும். புதுப்பிப்பு வினவல் அதைப் பயன்படுத்த முயற்சிக்கும் முன், நெடுவரிசை முழுமையாகச் செயல்படாததே இதற்குக் காரணம். 🚀
இந்தக் கட்டுரையில், நெடுவரிசையைச் சேர்ப்பதற்கும் வரிசைகளைப் புதுப்பிப்பதற்கும் சரியான வரிசையில் நடப்போம், பெரிய தரவுத்தொகுப்புகளுடன் கூட சீரான செயல்பாட்டை உறுதிசெய்வோம். மில்லியன் கணக்கான வரிசைகளை திறம்பட கையாள, SQL ஸ்கிரிப்ட்களை மேம்படுத்துவதற்கான உதவிக்குறிப்புகளில் நாங்கள் மூழ்குவோம், உங்கள் தரவு செயல்பாடுகள் தடையின்றி இயங்குவதை உறுதிசெய்கிறோம். நாங்கள் படிகளை ஆராய்ந்து, பொதுவான சிக்கல்களைச் சரிசெய்வதால், காத்திருங்கள்!
கட்டளை | பயன்பாட்டின் உதாரணம் |
---|---|
ALTER TABLE | புதிய நெடுவரிசைகளைச் சேர்ப்பது போன்ற ஏற்கனவே உள்ள அட்டவணையின் கட்டமைப்பை மாற்ற இந்தக் கட்டளை பயன்படுத்தப்படுகிறது. எடுத்துக்காட்டாக, `ALTER TABLE dbo.sample ADD IS_CURRENT BIT;` ஆனது `dbo.sample` அட்டவணையில் `IS_CURRENT` என்ற புதிய நெடுவரிசையைச் சேர்க்கிறது. |
UPDATE | அட்டவணையில் இருக்கும் பதிவுகளை மாற்ற `UPDATE` கட்டளை பயன்படுத்தப்படுகிறது. உதாரணமாக, `UPDATE dbo.sample SET IS_CURRENT = 0 WHERE LOAD_DATE |
CAST | SQL சேவையகத்தில், `CAST` என்பது ஒரு தரவு வகையை மற்றொன்றுக்கு மாற்றப் பயன்படுகிறது. எடுத்துக்காட்டில், `CAST(DATEADD(month, DATEDIFF(month, 0, DATEADD(DAY, -60, GETDATE())), 0) AS DATE)` என்பது தேதி கையாளுதல் முடிவை தேதி வகையாக மாற்றும். |
DATEADD | ஒரு தேதியில் குறிப்பிட்ட நேர இடைவெளியைச் சேர்க்க இந்தச் செயல்பாடு பயன்படுகிறது. எடுத்துக்காட்டாக, `DATEADD(DAY, -60, GETDATE())` என்பது தற்போதைய தேதியிலிருந்து 60 நாட்களைக் கழிக்கிறது. |
DATEDIFF | `DATEDIFF` செயல்பாடு இரண்டு தேதிகளுக்கு இடையிலான வேறுபாட்டைக் கணக்கிடுகிறது. இந்த வழக்கில், `DATEDIFF(மாதம், 0, GETDATE())` என்பது அடிப்படைத் தேதிக்கும் (0, இது '1900-01-01') தற்போதைய தேதிக்கும் இடையே உள்ள மாதங்களின் எண்ணிக்கையைக் கண்டறியும். |
BEGIN TRANSACTION | இந்த கட்டளை ஒரு பரிவர்த்தனை தொகுதியைத் தொடங்குகிறது. பல SQL அறிக்கைகள் ஒரு யூனிட்டாக செயல்படுத்தப்படுவதை உறுதிசெய்வது அவசியம், தரவு ஒருமைப்பாட்டை பராமரிக்கிறது. `பரிவர்த்தனையைத் தொடங்கு;` பரிவர்த்தனையைத் தொடங்குகிறது, மேலும் ஏதேனும் மாற்றங்கள் செய்யப்படலாம் அல்லது திரும்பப் பெறலாம். |
COMMIT TRANSACTION | பரிவர்த்தனையின் போது செய்யப்பட்ட அனைத்து மாற்றங்களையும் தரவுத்தளத்தில் சேமிக்கப் பயன்படுகிறது. `பரிவர்த்தனையை உறுதிசெய்க;` என்பது, `பரிவர்த்தனையைத் தொடங்கு` தொகுதிக்குள் செய்யப்பட்ட அனைத்து மாற்றங்களும் இறுதி செய்யப்பட்டு தொடர்ந்து நிலைத்திருப்பதை உறுதி செய்கிறது. |
UPDATE TOP | `UPDATE` கட்டளையின் இந்தப் பதிப்பு, புதுப்பித்தலால் பாதிக்கப்பட்ட வரிசைகளின் எண்ணிக்கையைக் கட்டுப்படுத்தப் பயன்படுகிறது. எடுத்துக்காட்டாக, `UPDATE TOP (10000) dbo.sample SET IS_CURRENT = 0 WHERE LOAD_DATE |
EXEC msdb.dbo.sp_add_job | ஒரு புதிய வேலையை உருவாக்க SQL சர்வர் ஏஜெண்டில் இந்த சேமிக்கப்பட்ட செயல்முறை பயன்படுத்தப்படுகிறது. `EXEC msdb.dbo.sp_add_job @job_name = 'IS_CURRENT வேலையைப் புதுப்பிக்கவும்';` குறிப்பிட்ட SQL கட்டளைகளைத் தானாக இயக்க திட்டமிடக்கூடிய வேலையை உருவாக்குகிறது. |
அட்டவணைகளை மாற்றுவதற்கும் வரிசைகளைப் புதுப்பிப்பதற்கும் SQL சர்வர் கட்டளைகளைப் புரிந்துகொள்வது
SQL சேவையகத்துடன் பணிபுரியும் போது, குறிப்பாக பெரிய தரவுத்தொகுப்புகளைக் கொண்ட அட்டவணைகளுடன், அட்டவணையை மாற்றுவதற்கும் அதன் வரிசைகளைப் புதுப்பிப்பதற்கும் ஒரு ஒழுங்கான அணுகுமுறையைப் பின்பற்றுவது முக்கியம். ஒரு பொதுவான சூழ்நிலையில், அட்டவணையில் புதிய நெடுவரிசையைச் சேர்த்து, தேதிகளின் அடிப்படையில் கொடியை அமைப்பது போன்ற குறிப்பிட்ட நிபந்தனைகளின் அடிப்படையில் வரிசைகளைப் புதுப்பிக்க வேண்டும். நான் வழங்கிய ஸ்கிரிப்ட் இதற்கான எளிய அணுகுமுறையை நிரூபிக்கிறது, ஆனால் இந்த பணிகளை திறம்பட அடைவதற்கு அவசியமான முக்கிய SQL சர்வர் கட்டளைகளை இது எடுத்துக்காட்டுகிறது. தி மாற்று அட்டவணை அட்டவணையில் புதிய நெடுவரிசையைச் சேர்க்க கட்டளை பயன்படுத்தப்படுகிறது. உதாரணமாக, `ALTER TABLE dbo.sample ADD IS_CURRENT BIT;` ஐ இயக்கும்போது, `BIT` வகையின் `IS_CURRENT` என்ற புதிய நெடுவரிசையை அறிமுகப்படுத்த அட்டவணை அமைப்பை மாற்றுகிறோம் (பூலியன் வகை, 0 அல்லது 1).
நெடுவரிசையைச் சேர்த்த பிறகு, அடுத்த கட்டமாக சில நிபந்தனைகளின் அடிப்படையில் அட்டவணையில் உள்ள வரிசைகளைப் புதுப்பிக்க வேண்டும். இதைப் பயன்படுத்தி அடையப்படுகிறது புதுப்பிக்கவும் கட்டளை. எடுத்துக்காட்டாக, வினவல் `UPDATE dbo.sample SET IS_CURRENT = 0 WHERE LOAD_DATE
சில சந்தர்ப்பங்களில், குறிப்பாக மில்லியன் கணக்கான வரிசைகளைக் கொண்ட பெரிய அட்டவணைகளைக் கையாளும் போது, SQL கட்டளைகள் திறமையாக செயல்படுத்தப்படுவதை உறுதி செய்வது முக்கியம். இது போன்ற செயல்பாடுகள் DATEADD மற்றும் DATEDIFF நாடகத்திற்கு வாருங்கள். இந்த செயல்பாடுகள் தேதிகளை துல்லியமாக கையாளவும் ஒப்பிடவும் உங்களை அனுமதிக்கின்றன. இரண்டாவது புதுப்பிப்பு வினவலில், `DATEADD(மாதம், DATEDIFF(மாதம், 0, DATEADD(DAY, -60, GETDATE())), 0)` தற்போதைய தேதியிலிருந்து (`GETDATE()`) 60 நாட்களைக் கழித்து, மீட்டமைக்கிறது மாதத்தின் தொடக்க நேரம். இந்தச் செயல்பாடுகளைப் பயன்படுத்துவதன் மூலம், காலப்போக்கில் மாற்றியமைக்கும் அதிக ஆற்றல்மிக்க தேதி வரம்புகளை நாம் வரையறுக்கலாம், மேலும் தரவு வயதாகும்போதும் தற்போதைய நிலையில் இருப்பதை உறுதிசெய்யலாம்.
இருப்பினும், `ALTER TABLE` மற்றும் `UPDATE` அறிக்கைகள் இரண்டையும் ஒரே ஸ்கிரிப்ட்டில் இணைக்கும்போது, SQL சர்வர் சில சமயங்களில் "தவறான நெடுவரிசைப் பெயர்" பிழையை ஏற்படுத்தலாம். `ALTER TABLE` ஆல் சேர்க்கப்பட்ட நெடுவரிசையானது SQL சர்வரால் முழுமையாக உறுதிப்படுத்தப்படாமல் இருக்கலாம் அல்லது அதே தொகுப்பில் அடுத்தடுத்த வினவல்களைச் செயல்படுத்தும் போது இது நிகழலாம். இந்தச் சிக்கலுக்கான தீர்வாக `ALTER TABLE` அறிக்கை மற்றும் `UPDATE` கட்டளைகளைப் பிரித்து, மேம்படுத்தல்களைச் செய்வதற்கு முன் அட்டவணை மாற்றத்தை முழுமையாகச் செய்திருப்பதை உறுதிசெய்கிறது. அவ்வாறு செய்வதன் மூலம், SQL சேவையகம் புதிய நெடுவரிசையை அதன் திட்டத்தில் சரியாகப் பதிவுசெய்து, அட்டவணையை சீராகப் புதுப்பிக்க அனுமதிக்கிறது. பெரிய தரவுத்தொகுப்புகளைக் கையாளும் போது, இந்தச் செயல்பாடுகளை தொகுப்பாகச் செயல்படுத்துவது அல்லது பரிவர்த்தனைகளைப் பயன்படுத்தி செயல்முறை முடிந்தவரை திறமையாக இருப்பதை உறுதிசெய்து, சாத்தியமான காலக்கெடு அல்லது பூட்டுகளைத் தவிர்க்கவும். 🚀
தீர்வு 1: அட்டவணையை மாற்றுவதற்கும் வரிசைகளைப் புதுப்பிப்பதற்கும் நிலையான அணுகுமுறை
இந்த தீர்வு SQL சர்வர் மேனேஜ்மென்ட் ஸ்டுடியோ (SSMS) ஐப் பயன்படுத்தி நிலையான அணுகுமுறையை உள்ளடக்கியது, அங்கு நாம் முதலில் நெடுவரிசையைச் சேர்த்து, பின்னர் பொருத்தமான நிபந்தனைகளுடன் வரிசைகளைப் புதுப்பிக்கிறோம். நாங்கள் ALTER TABLE அறிக்கையை இயக்கி, ஏதேனும் புதுப்பிப்புகளைச் செய்வதற்கு முன் அதைச் செய்கிறோம்.
ALTER TABLE dbo.sample ADD IS_CURRENT BIT;
GO
UPDATE dbo.sample
SET IS_CURRENT = 0
WHERE LOAD_DATE < '2025-01-01';
GO
UPDATE dbo.sample
SET IS_CURRENT = 0
WHERE LOAD_DATE >= CAST(DATEADD(month, DATEDIFF(month, 0, DATEADD(DAY, -60, GETDATE())), 0) AS DATE);
GO
தீர்வு 2: அணுசக்திக்கான பரிவர்த்தனையைப் பயன்படுத்தி உகந்த அணுகுமுறை
இந்த தீர்வு அட்டவணை மாற்றமும் வரிசை புதுப்பிப்புகளும் அணுக்கருவாக செய்யப்படுவதை உறுதி செய்கிறது. ஒரு பரிவர்த்தனையில் செயல்பாடுகளை மூடுவதன் மூலம், தோல்வி ஏற்பட்டால் நிலைத்தன்மையையும் திரும்பப் பெறுவதையும் உறுதிசெய்கிறோம்.
BEGIN TRANSACTION;
ALTER TABLE dbo.sample ADD IS_CURRENT BIT;
UPDATE dbo.sample
SET IS_CURRENT = 0
WHERE LOAD_DATE < '2025-01-01';
UPDATE dbo.sample
SET IS_CURRENT = 0
WHERE LOAD_DATE >= CAST(DATEADD(month, DATEDIFF(month, 0, DATEADD(DAY, -60, GETDATE())), 0) AS DATE);
COMMIT TRANSACTION;
தீர்வு 3: பெரிய தரவுத்தொகுப்புகளுக்கான தொகுதி செயலாக்கத்தைப் பயன்படுத்தி அணுகவும்
ஒரு மில்லியனுக்கும் அதிகமான வரிசைகளைக் கொண்ட அட்டவணைகளைக் கையாளும் போது, பூட்டுதலைக் குறைத்து பரிவர்த்தனை அளவைக் குறைப்பது அவசியம். இந்தத் தீர்வு, செயல்திறனை மேம்படுத்துவதற்கும், காலக்கெடுவைத் தடுப்பதற்கும் சிறிய தொகுப்புகளில் புதுப்பிப்புகளைச் செயல்படுத்துகிறது.
DECLARE @BatchSize INT = 10000;
DECLARE @RowCount INT;
SELECT @RowCount = COUNT(*) FROM dbo.sample WHERE IS_CURRENT IS ;
WHILE @RowCount > 0
BEGIN
UPDATE TOP (@BatchSize) dbo.sample
SET IS_CURRENT = 0
WHERE LOAD_DATE < '2025-01-01' AND IS_CURRENT IS ;
SET @RowCount = @RowCount - @BatchSize;
END
தீர்வு 4: செயல்திறன் மேம்பாட்டிற்காக அட்டவணைப்படுத்தப்பட்ட காட்சிகளின் பயன்பாடு
பெரிய தரவுத்தொகுப்புகளை வினவும்போது செயல்திறனை மேம்படுத்த, நீங்கள் SQL சேவையகத்தில் அட்டவணைப்படுத்தப்பட்ட காட்சிகளை உருவாக்கலாம். இந்த அணுகுமுறை சிக்கலான வினவல்களின் முடிவுகளைச் சேமித்து, மீண்டும் மீண்டும் தரவு செயலாக்கத்தின் தேவையைக் குறைக்க, பொருளடக்கம் செய்யப்பட்ட பார்வைகளைப் பயன்படுத்துகிறது.
CREATE VIEW dbo.Sample_View AS
SELECT LOAD_DATE, IS_CURRENT
FROM dbo.sample
WHERE LOAD_DATE < '2025-01-01';
GO
CREATE UNIQUE CLUSTERED INDEX idx_sample_view ON dbo.Sample_View (LOAD_DATE);
GO
UPDATE dbo.sample
SET IS_CURRENT = 0
FROM dbo.Sample_View v
WHERE dbo.sample.LOAD_DATE = v.LOAD_DATE;
GO
தீர்வு 5: திட்டமிடப்பட்ட புதுப்பிப்புகளுக்கான SQL சர்வர் முகவர் வேலைகளை அணுகவும்
நீங்கள் அட்டவணையை ஒரு திட்டமிடப்பட்ட அடிப்படையில் புதுப்பிக்க வேண்டும் என்றால், SQL சர்வர் ஏஜென்ட்டைப் பயன்படுத்தி, குறிப்பிட்ட கால இடைவெளியில் புதுப்பிப்புச் செயல்முறையைச் செயல்படுத்தும் வேலைகளை உருவாக்க, கைமுறையாகச் செயல்படுத்த வேண்டிய தேவையைத் தவிர்க்கலாம்.
EXEC msdb.dbo.sp_add_job @job_name = 'Update IS_CURRENT Job';
EXEC msdb.dbo.sp_add_jobstep @job_name = 'Update IS_CURRENT Job',
@step_name = 'Update IS_CURRENT Step',
@subsystem = 'TSQL',
@command = 'UPDATE dbo.sample SET IS_CURRENT = 0 WHERE LOAD_DATE < ''2025-01-01'';',
@retry_attempts = 5, @retry_interval = 5;
EXEC msdb.dbo.sp_add_schedule @schedule_name = 'Daily Schedule',
@enabled = 1, @freq_type = 4, @freq_interval = 1, @active_start_time = 010000;
EXEC msdb.dbo.sp_attach_schedule @job_name = 'Update IS_CURRENT Job', @schedule_name = 'Daily Schedule';
EXEC msdb.dbo.sp_start_job @job_name = 'Update IS_CURRENT Job';
ஸ்கிரிப்ட்களில் பயன்படுத்தப்படும் குறிப்பிட்ட SQL கட்டளைகளின் விளக்கம்
பெரிய அட்டவணைகளுக்கு SQL சர்வர் ஸ்கிரிப்ட்களை மேம்படுத்துதல்
SQL சர்வரில் பெரிய டேபிள்களுடன் பணிபுரியும் போது, டேபிள் கட்டமைப்பை மாற்றும் போது மற்றும் ஏற்கனவே உள்ள வரிசைகளை புதுப்பிக்கும் போது செயல்திறன் மேம்படுத்தல் நுட்பங்களைக் கருத்தில் கொள்வது அவசியம். பெரிய டேபிள்களில் ஸ்கிரிப்ட்களை இயக்கும் போது எதிர்கொள்ளும் பொதுவான சிக்கல்களில் ஒன்று, இந்த செயல்பாடுகளை முடிக்க எடுக்கும் நேரம், குறிப்பாக ஒரு அட்டவணையில் ஒரு மில்லியன் வரிசைகள் இருக்கும் போது. உடன் நெடுவரிசையைச் சேர்ப்பது போன்ற கேள்விக்குரிய செயல்பாடுகள் மாற்று அட்டவணை குறிப்பிட்ட தேதி நிபந்தனைகளின் அடிப்படையில் கட்டளை மற்றும் வரிசைகளை புதுப்பித்தல், கணிசமான அளவு நேரம் எடுக்கும். செயல்திறன் முன்னுரிமையாக இருக்கும் உற்பத்தி தரவுத்தளங்களில் நீங்கள் பணிபுரியும் போது இந்த செயல்பாடுகளை மேம்படுத்துவது மிகவும் முக்கியமானது. ஒரு ஒற்றை ஸ்கிரிப்ட் நீண்ட காலத்திற்கு அட்டவணையை பூட்டலாம், இது மற்ற வினவல்கள் மற்றும் பயனர்களை பாதிக்கிறது.
செயல்திறன் சிக்கல்களைத் தணிக்க, பணிகளைச் சிறிய படிகளாகப் பிரிப்பதே சிறந்த அணுகுமுறைகளில் ஒன்றாகும். எடுத்துக்காட்டாக, ஒரு நெடுவரிசையைச் சேர்த்து அனைத்து வரிசைகளையும் ஒரே ஸ்கிரிப்ட்டில் புதுப்பிப்பதை விட, அதை இயக்குவதைக் கவனியுங்கள் மாற்று அட்டவணை தனித்தனியாக கட்டளையிடவும் UPDATE செயல்பாடுகள். சிறிய துண்டுகளாக பதிவுகளை புதுப்பிப்பதன் மூலம், ஸ்கிரிப்ட் சர்வரை மூழ்கடிக்காது. நீங்கள் பயன்படுத்த முடியும் UPDATE TOP ஒவ்வொரு பரிவர்த்தனையிலும் பாதிக்கப்பட்ட வரிசைகளின் எண்ணிக்கையைக் கட்டுப்படுத்த கட்டளை. கூடுதலாக, உங்களில் பயன்படுத்தப்படும் நெடுவரிசைகளில் குறியீடுகளை உருவாக்குவதும் நல்லது WHERE உட்பிரிவுகள் (போன்ற LOAD_DATE) தேடல் செயல்முறையை விரைவுபடுத்த. பெரிய தரவுத்தொகுப்புகளுக்கு, தேதி வரம்புகளின் அடிப்படையில் வரிசைகளை வடிகட்ட எடுக்கும் நேரத்தை குறியீடுகள் குறைக்கின்றன.
மற்றொரு முக்கியமான கருத்தில் பரிவர்த்தனைகளின் பயன்பாடு மற்றும் செயல்பாடுகள் அணுவாக செயல்படுத்தப்படுவதை உறுதிசெய்யும் பிழை கையாளுதல் ஆகும். உங்கள் போர்த்தி மூலம் UPDATE உள்ளே அறிக்கைகள் a BEGIN TRANSACTION மற்றும் COMMIT, மாற்றங்கள் பாதுகாப்பான மற்றும் சீரான முறையில் செய்யப்படுவதை உறுதிசெய்கிறீர்கள். செயல்முறையின் எந்தப் பகுதியும் தோல்வியுற்றால், நீங்கள் பயன்படுத்தலாம் ROLLBACK மாற்றங்களை மாற்றியமைக்க, பகுதி புதுப்பிப்புகளைத் தடுக்கிறது. கூடுதலாக, நெரிசல் இல்லாத நேரங்களில் ஸ்கிரிப்ட்களை இயக்குவது அல்லது இந்த செயல்பாடுகளை திட்டமிட SQL சர்வர் ஏஜென்டைப் பயன்படுத்துவது கணினி செயல்திறனில் குறைந்த தாக்கத்தை உறுதி செய்கிறது. இந்த மேம்படுத்தல்கள் மூலம், கணினி ஒருமைப்பாட்டை பராமரிக்கும் போது, பெரிய அட்டவணைகளில் சிக்கலான மாற்றங்களை நீங்கள் பாதுகாப்பாக செயல்படுத்தலாம். 🖥️
SQL சர்வர் டேபிள் மாற்றங்கள் பற்றி அடிக்கடி கேட்கப்படும் கேள்விகள்
- SQL சர்வரில் உள்ள அட்டவணையில் புதிய நெடுவரிசையை எவ்வாறு சேர்ப்பது?
- இதைப் பயன்படுத்தி புதிய நெடுவரிசையைச் சேர்க்கலாம் ALTER TABLE கட்டளை. எடுத்துக்காட்டாக: ALTER TABLE dbo.sample ADD IS_CURRENT BIT; BIT இன் தரவு வகையுடன் IS_CURRENT என்ற நெடுவரிசையைச் சேர்க்கிறது.
- SQL சர்வரில் ஒரு குறிப்பிட்ட அளவிலான வரிசைகளை மட்டும் நான் எவ்வாறு புதுப்பிக்க முடியும்?
- பயன்படுத்தவும் UPDATE ஒரு உடன் கட்டளை WHERE வரிசைகளை வடிகட்டுவதற்கான விதி. எடுத்துக்காட்டாக: UPDATE dbo.sample SET IS_CURRENT = 0 WHERE LOAD_DATE
- எனது ஸ்கிரிப்ட் ஏன் "தவறான நெடுவரிசைப் பெயர்" பிழையை வீசுகிறது?
- என்றால் இந்த பிழை ஏற்படுகிறது ALTER TABLE கட்டளையை இயக்குவதற்கு முன் முழுமையாக உறுதி செய்யப்படவில்லை UPDATE அறிக்கை. இதைத் தவிர்க்க, இயக்கவும் ALTER TABLE முதலில் கட்டளை, நெடுவரிசை சேர்க்கப்படும் வரை காத்திருந்து, பின்னர் இயக்கவும் UPDATE தனித்தனியாக வினவுகிறது.
- செயல்திறனை மேம்படுத்த வரிசைகளை எவ்வாறு தொகுப்பாகப் புதுப்பிப்பது?
- பயன்படுத்தவும் UPDATE TOP ஒரே நேரத்தில் புதுப்பிக்கப்பட்ட வரிசைகளின் எண்ணிக்கையைக் கட்டுப்படுத்த கட்டளை. எடுத்துக்காட்டாக: UPDATE TOP (1000) dbo.sample SET IS_CURRENT = 0 WHERE LOAD_DATE
- அணு புதுப்பிப்புகளை உறுதிசெய்ய நான் பரிவர்த்தனையைப் பயன்படுத்தலாமா?
- ஆம்! உங்கள் போர்த்தி UPDATE a இல் அறிக்கைகள் BEGIN TRANSACTION மற்றும் COMMIT அனைத்து புதுப்பிப்புகளும் ஒற்றை அலகாகப் பயன்படுத்தப்படுவதை உறுதிசெய்ய தடுக்கவும். ஏதேனும் பிழைகள் ஏற்பட்டால், பயன்படுத்தவும் ROLLBACK மாற்றங்களைச் செயல்தவிர்க்க.
- SQL சர்வரில் பெரிய புதுப்பிப்புகளின் செயல்திறனை மேம்படுத்த சிறந்த வழி எது?
- புதுப்பித்தலை சிறிய துண்டுகளாக உடைத்து, தொடர்புடைய நெடுவரிசைகளில் குறியீடுகளை உருவாக்கி, ஸ்கிரிப்டை அதிகமாக இல்லாத நேரங்களில் இயக்கவும். கூடுதலாக, பயன்படுத்தி UPDATE TOP முறை பூட்டுதல் சிக்கல்களைத் தவிர்க்க உதவுகிறது மற்றும் வள நுகர்வு குறைக்கிறது.
- SQL சர்வரில் தேதி ஒப்பீடுகளை எவ்வாறு அதிக ஆற்றல்மிக்கதாக மாற்றுவது?
- போன்ற தேதி செயல்பாடுகளைப் பயன்படுத்தவும் DATEADD மற்றும் DATEDIFF டைனமிக் தேதி கணக்கீடுகளை செய்ய. எடுத்துக்காட்டாக, 60 நாட்களுக்கு முந்தைய தேதியை அமைக்க, DATEADD(DAY, -60, GETDATE()) ஐப் பயன்படுத்தவும்.
- ஒரு தேதியின் அடிப்படையில் மில்லியன் கணக்கான வரிசைகளைப் புதுப்பிக்க வேண்டும் என்றால் நான் என்ன செய்ய வேண்டும்?
- சிறந்த செயல்திறனுக்காக அட்டவணைப்படுத்தப்பட்ட நெடுவரிசைகளைப் பயன்படுத்துவதைக் கவனியுங்கள். கூடுதலாக, உங்கள் புதுப்பிப்பை சிறிய பரிவர்த்தனைகளாகப் பிரித்து பயன்படுத்தவும் UPDATE TOP வரிசைகளை தொகுப்பாக புதுப்பிக்க.
- பெரிய அட்டவணையைப் புதுப்பிக்கும்போது பூட்டுதல் சிக்கல்களைத் தவிர்ப்பது எப்படி?
- பூட்டுதல் சிக்கல்களைத் தடுக்க, புதுப்பிப்புகளை சிறிய தொகுதிகளாகப் பிரிக்க முயற்சிக்கவும், நிலைகளில் மாற்றங்களைச் செய்ய பரிவர்த்தனைகளைப் பயன்படுத்தவும் மற்றும் குறைந்த பயன்பாட்டு நேரங்களில் புதுப்பிப்பை இயக்கவும்.
- SQL சர்வரில் பெரிய அப்டேட் ஸ்கிரிப்ட்களை நான் திட்டமிடலாமா?
- ஆம், சிஸ்டம் செயல்திறனில் ஏற்படும் பாதிப்பைக் குறைக்க, நெரிசல் இல்லாத நேரங்களில் பெரிய அப்டேட் ஸ்கிரிப்ட்களை திட்டமிட SQL சர்வர் ஏஜென்ட்டைப் பயன்படுத்தலாம். SQL சர்வர் ஏஜெண்டில் ஒரு வேலையை உருவாக்கி, விரும்பிய அட்டவணையை அமைக்கவும்.
SQL சேவையகத்தில் பெரிய அட்டவணை மாற்றங்களை மேம்படுத்துதல்
பெரிய அட்டவணைகளை மாற்ற SQL சேவையகத்துடன் பணிபுரியும் போது, உங்கள் செயல்பாடுகளை உடைப்பது செயல்திறனை மேம்படுத்துவதற்கு முக்கியமாகும். மில்லியன் கணக்கான வரிசைகளைக் கொண்ட அட்டவணையில் ஒரு நெடுவரிசையைச் சேர்ப்பது மற்றும் குறிப்பிட்ட நிபந்தனைகளின் அடிப்படையில் தரவைப் புதுப்பிப்பது சவாலாக இருக்கலாம். இது போன்ற கட்டளைகளின் மூலோபாய செயல்படுத்தல் தேவைப்படுகிறது மாற்று அட்டவணை மற்றும் UPDATE கணினியை அதிகப்படுத்தாமல் மாற்றங்கள் பயன்படுத்தப்படுவதை உறுதிசெய்ய.
கூடுதலாக, பேட்ச் புதுப்பித்தல், அட்டவணைப்படுத்தல் மற்றும் ஸ்கிரிப்ட்களை அதிக நெரிசல் இல்லாத நேரங்களில் இயக்குதல் போன்ற சிறந்த நடைமுறைகளைச் செயல்படுத்துவது, டேபிள் லாக்கிங் மற்றும் செயல்திறன் சிதைவு போன்ற சிக்கல்களைத் தடுக்க உதவும். பணிச்சுமையை பிரித்து, வினவல்களை மேம்படுத்துவதன் மூலம், வேலையில்லா நேரம் அல்லது "தவறான நெடுவரிசைப் பெயர்" போன்ற பிழைகள் ஏற்படாமல் பெரிய அளவிலான மாற்றங்களை நீங்கள் பாதுகாப்பாகச் செய்யலாம். 💻
குறிப்புகள் மற்றும் ஆதாரங்கள்
- SQL சேவையகத்தில் அட்டவணைகளை மாற்றுதல் மற்றும் தரவைப் புதுப்பிக்கும் செயல்முறையை விவரிக்கிறது. அட்டவணைகள் மற்றும் சிறந்த நடைமுறைகளை மாற்றுவது பற்றி மேலும் அறிய, பார்க்கவும் மைக்ரோசாப்ட் SQL சர்வர் ஆவணம் .
- பெரிய அட்டவணைகளுடன் பணிபுரிவது மற்றும் SQL கட்டளைகளை மேம்படுத்துவது பற்றிய நுண்ணறிவுகளை வழங்குகிறது SQL ஷேக் .
- SQL இல் தேதி அடிப்படையிலான நிபந்தனை புதுப்பிப்புகள் மற்றும் அட்டவணைப்படுத்தலின் முக்கியத்துவத்தை விளக்குகிறது SQL சர்வர் சென்ட்ரல் .