$lang['tuto'] = "ట్యుటోరియల్స్"; ?> SQL సర్వర్‌లో కాలమ్

SQL సర్వర్‌లో కాలమ్ మరియు అప్‌డేట్ అడ్డు వరుసలను ఎలా సమర్థవంతంగా జోడించాలి

Temp mail SuperHeros
SQL సర్వర్‌లో కాలమ్ మరియు అప్‌డేట్ అడ్డు వరుసలను ఎలా సమర్థవంతంగా జోడించాలి
SQL సర్వర్‌లో కాలమ్ మరియు అప్‌డేట్ అడ్డు వరుసలను ఎలా సమర్థవంతంగా జోడించాలి

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(నెల, DATEDIFF(నెల, 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` (బూలియన్ రకం, 0 లేదా 1) రకం `IS_CURRENT` పేరుతో కొత్త నిలువు వరుసను పరిచయం చేయడానికి పట్టిక నిర్మాణాన్ని సవరిస్తున్నాము.

నిలువు వరుసను జోడించిన తర్వాత, కొన్ని షరతుల ఆధారంగా పట్టికలోని అడ్డు వరుసలను నవీకరించడం తదుపరి దశ. ఇది ఉపయోగించి సాధించబడుతుంది నవీకరణ ఆదేశం. ఉదాహరణకు, ప్రశ్న `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 సర్వర్ టేబుల్ సవరణల గురించి తరచుగా అడిగే ప్రశ్నలు

  1. SQL సర్వర్‌లోని పట్టికకు కొత్త కాలమ్‌ని ఎలా జోడించాలి?
  2. మీరు ఉపయోగించి కొత్త నిలువు వరుసను జోడించవచ్చు ALTER TABLE ఆదేశం. ఉదాహరణకు: ALTER TABLE dbo.sample ADD IS_CURRENT BIT; BIT డేటా రకంతో IS_CURRENT అనే నిలువు వరుసను జోడిస్తుంది.
  3. నేను SQL సర్వర్‌లో నిర్దిష్ట శ్రేణి వరుసలను మాత్రమే ఎలా అప్‌డేట్ చేయగలను?
  4. ఉపయోగించండి UPDATE a తో ఆదేశం WHERE అడ్డు వరుసలను ఫిల్టర్ చేయడానికి నిబంధన. ఉదాహరణకు: UPDATE dbo.sample SET IS_CURRENT = 0 WHERE LOAD_DATE
  5. నా స్క్రిప్ట్ "చెల్లని నిలువు వరుస పేరు" లోపాన్ని ఎందుకు విసిరింది?
  6. ఉంటే ఈ లోపం సంభవిస్తుంది ALTER TABLE అమలు చేయడానికి ముందు కమాండ్ పూర్తిగా కట్టుబడి ఉండదు UPDATE ప్రకటన. దీన్ని నివారించడానికి, అమలు చేయండి ALTER TABLE ముందుగా కమాండ్ చేయండి, కాలమ్ జోడించబడే వరకు వేచి ఉండి, ఆపై అమలు చేయండి UPDATE విడివిడిగా ప్రశ్నలు.
  7. పనితీరును మెరుగుపరచడానికి నేను బ్యాచ్‌లలో అడ్డు వరుసలను ఎలా అప్‌డేట్ చేయగలను?
  8. ఉపయోగించండి UPDATE TOP ఒకేసారి నవీకరించబడిన అడ్డు వరుసల సంఖ్యను పరిమితం చేయడానికి ఆదేశం. ఉదాహరణకు: UPDATE TOP (1000) dbo.sample SET IS_CURRENT = 0 WHERE LOAD_DATE
  9. అటామిక్ అప్‌డేట్‌లను నిర్ధారించడానికి నేను లావాదేవీని ఉపయోగించవచ్చా?
  10. అవును! మీ చుట్టండి UPDATE a లో ప్రకటనలు BEGIN TRANSACTION మరియు COMMIT అన్ని అప్‌డేట్‌లు ఒకే యూనిట్‌గా వర్తింపజేయబడుతున్నాయని నిర్ధారించడానికి బ్లాక్ చేయండి. ఏదైనా లోపాలు సంభవించినట్లయితే, ఉపయోగించండి ROLLBACK మార్పులను రద్దు చేయడానికి.
  11. SQL సర్వర్‌లో పెద్ద నవీకరణల పనితీరును ఆప్టిమైజ్ చేయడానికి ఉత్తమ మార్గం ఏమిటి?
  12. నవీకరణను చిన్న భాగాలుగా విభజించడం, సంబంధిత నిలువు వరుసలపై సూచికలను సృష్టించడం మరియు రద్దీ లేని సమయాల్లో స్క్రిప్ట్‌ను అమలు చేయడం వంటివి పరిగణించండి. అదనంగా, ఉపయోగించి UPDATE TOP ఈ పద్ధతి లాకింగ్ సమస్యలను నివారించడానికి మరియు వనరుల వినియోగాన్ని తగ్గిస్తుంది.
  13. నేను SQL సర్వర్‌లో తేదీ పోలికలను మరింత డైనమిక్‌గా ఎలా చేయగలను?
  14. వంటి తేదీ ఫంక్షన్లను ఉపయోగించండి DATEADD మరియు DATEDIFF డైనమిక్ తేదీ గణనలను నిర్వహించడానికి. ఉదాహరణకు, 60 రోజుల క్రితం తేదీని సెట్ చేయడానికి, DATEADD(DAY, -60, GETDATE())ని ఉపయోగించండి.
  15. నేను తేదీ ఆధారంగా మిలియన్ల కొద్దీ అడ్డు వరుసలను అప్‌డేట్ చేయవలసి వస్తే నేను ఏమి చేయాలి?
  16. మెరుగైన పనితీరు కోసం ఇండెక్స్ చేయబడిన నిలువు వరుసలను ఉపయోగించడాన్ని పరిగణించండి. అదనంగా, మీ అప్‌డేట్‌ను చిన్న లావాదేవీలుగా విభజించి, ఉపయోగించండి UPDATE TOP బ్యాచ్‌లలో వరుసలను నవీకరించడానికి.
  17. పెద్ద పట్టికను అప్‌డేట్ చేస్తున్నప్పుడు నేను లాక్ సమస్యలను ఎలా నివారించగలను?
  18. లాకింగ్ సమస్యలను నివారించడానికి, అప్‌డేట్‌లను చిన్న బ్యాచ్‌లుగా విభజించి ప్రయత్నించండి, దశలవారీగా మార్పులను చేయడానికి లావాదేవీలను ఉపయోగించండి మరియు తక్కువ వినియోగ సమయాల్లో అప్‌డేట్‌ను అమలు చేయడం గురించి ఆలోచించండి.
  19. నేను SQL సర్వర్‌లో పెద్ద నవీకరణ స్క్రిప్ట్‌లను షెడ్యూల్ చేయవచ్చా?
  20. అవును, సిస్టమ్ పనితీరుపై ప్రభావాన్ని తగ్గించడానికి ఆఫ్-పీక్ గంటలలో పెద్ద నవీకరణ స్క్రిప్ట్‌లను షెడ్యూల్ చేయడానికి SQL సర్వర్ ఏజెంట్ ఉపయోగించవచ్చు. SQL సర్వర్ ఏజెంట్‌లో ఉద్యోగాన్ని సృష్టించండి మరియు కావలసిన షెడ్యూల్‌ను సెట్ చేయండి.

SQL సర్వర్‌లో పెద్ద పట్టిక మార్పులను ఆప్టిమైజ్ చేయడం

పెద్ద పట్టికలను సవరించడానికి SQL సర్వర్‌తో పని చేస్తున్నప్పుడు, పనితీరును మెరుగుపరచడానికి మీ కార్యకలాపాలను విచ్ఛిన్నం చేయడం కీలకం. మిలియన్ల కొద్దీ అడ్డు వరుసలు ఉన్న పట్టికకు నిలువు వరుసను జోడించడం మరియు నిర్దిష్ట పరిస్థితుల ఆధారంగా డేటాను నవీకరించడం సవాలుగా ఉంటుంది. దీనికి వంటి ఆదేశాలను వ్యూహాత్మకంగా అమలు చేయడం అవసరం ఆల్టర్ టేబుల్ మరియు UPDATE సిస్టమ్‌ను అధికం చేయకుండా మార్పులు వర్తింపజేయబడతాయని నిర్ధారించడానికి.

అదనంగా, బ్యాచింగ్ అప్‌డేట్‌లు, ఇండెక్సింగ్‌ని ఉపయోగించడం మరియు రద్దీ లేని సమయాల్లో స్క్రిప్ట్‌లను అమలు చేయడం వంటి ఉత్తమ పద్ధతులను అమలు చేయడం వల్ల టేబుల్ లాకింగ్ మరియు పనితీరు క్షీణత వంటి సమస్యలను నివారించడంలో సహాయపడుతుంది. పనిభారాన్ని విభజించడం మరియు ప్రశ్నలను ఆప్టిమైజ్ చేయడం ద్వారా, మీరు పనికిరాని సమయం లేదా "చెల్లని నిలువు వరుస పేరు" వంటి లోపాలను కలిగించకుండా సురక్షితంగా పెద్ద ఎత్తున మార్పులు చేయవచ్చు. 💻

సూచనలు మరియు మూలాలు
  1. SQL సర్వర్‌లో పట్టికలను మార్చడం మరియు డేటాను నవీకరించే ప్రక్రియను వివరిస్తుంది. పట్టికలను మార్చడం మరియు ఉత్తమ అభ్యాసాల గురించి మరింత తెలుసుకోవడానికి, చూడండి Microsoft SQL సర్వర్ డాక్యుమెంటేషన్ .
  2. పెద్ద పట్టికలతో పని చేయడం మరియు SQL ఆదేశాలను ఆప్టిమైజ్ చేయడం గురించి అంతర్దృష్టులను అందిస్తుంది SQL షాక్ .
  3. SQLలో తేదీ-ఆధారిత షరతులతో కూడిన నవీకరణలు మరియు ఇండెక్సింగ్ యొక్క ప్రాముఖ్యతను వివరిస్తుంది, ఇక్కడ అందుబాటులో ఉంది SQL సర్వర్ సెంట్రల్ .