शीर्ष 50 टी-एसक्यूएल साक्षात्कार प्रश्न और उत्तर (2026)

टी-एसक्यूएल साक्षात्कार प्रश्न और उत्तर

क्या आप टी-एसक्यूएल साक्षात्कार की तैयारी कर रहे हैं? अब समय आ गया है कि आप अपनी समझ को और तेज़ करें कि डेटाबेस असल में सतह के नीचे कैसे काम करते हैं। टी-एसक्यूएल साक्षात्कार प्रश्नभर्तीकर्ता न केवल वाक्यविन्यास स्मरण का मूल्यांकन करते हैं, बल्कि डेटा हेरफेर, अनुकूलन और तार्किक संरचना पर आपके नियंत्रण का भी मूल्यांकन करते हैं।

इस क्षेत्र में अवसर लगातार बढ़ रहे हैं क्योंकि व्यवसाय डेटा-संचालित अंतर्दृष्टि पर निर्भर करते हैं। मज़बूत तकनीकी विशेषज्ञता, विश्लेषण कौशल और वास्तविक दुनिया की समस्याओं को सुलझाने की क्षमता वाले उम्मीदवार, चाहे वे नए हों या 5 से 10 साल के अनुभव वाले पेशेवर, सबसे आगे रहते हैं। बुनियादी और उन्नत, दोनों स्तरों पर प्रश्नों और उत्तरों को समझने से टीम लीडरों, प्रबंधकों और तकनीकी वरिष्ठों को मज़बूत SQL कौशल और मूल-स्तरीय अनुभव की पहचान करने में मदद मिलती है।

हमारी मार्गदर्शिका विभिन्न उद्योगों के 65 से अधिक भर्ती प्रबंधकों, 40 से अधिक वरिष्ठ डेवलपर्स और डेटा पेशेवरों से प्राप्त अंतर्दृष्टि पर आधारित है, जो आधारभूत SQL तर्क से लेकर उन्नत अनुकूलन तकनीकों तक कवरेज सुनिश्चित करती है, जिन पर विश्व भर के तकनीकी नेताओं द्वारा भरोसा किया जाता है।
अधिक पढ़ें…

👉 निःशुल्क पीडीएफ डाउनलोड: टी-एसक्यूएल साक्षात्कार प्रश्न और उत्तर

शीर्ष T-SQL साक्षात्कार प्रश्न और उत्तर

1) टी-एसक्यूएल क्या है, और यह मानक एसक्यूएल से किस प्रकार भिन्न है?

ट्रांज़ैक्ट-SQL (T-SQL) है MicrosoftSQL भाषा का स्वामित्व विस्तार, मुख्य रूप से उपयोग किया जाता है Microsoft SQL Serverयह प्रक्रियात्मक प्रोग्रामिंग सुविधाओं जैसे चर, शर्तें, लूप, त्रुटि प्रबंधन और अंतर्निहित फ़ंक्शन को शामिल करके मानक SQL को बेहतर बनाता है। जहाँ मानक SQL डेटा हेरफेर (SELECT, INSERT, UPDATE, DELETE) पर केंद्रित है, वहीं T-SQL प्रवाह नियंत्रण कथनों (IF…ELSE, WHILE), लेनदेन प्रबंधन और सिस्टम फ़ंक्शन का समर्थन करता है जो डेवलपर्स को जटिल स्क्रिप्ट लिखने की अनुमति देते हैं।

पहलू एसक्यूएल T-SQL
स्वामित्व एएनएसआई/आईएसओ मानक Microsoft
प्रक्रियात्मक तर्क सीमित समर्थित (चर, लूप)
गलती संभालना न्यूनतम TRY…CATCH समर्थित
प्राथमिक उपयोग सामान्य डीबी SQL सर्वर

उदाहरण:

DECLARE @count INT = 5;
WHILE @count > 0
BEGIN
    PRINT @count;
    SET @count -= 1;
END;

2) T-SQL में विभिन्न प्रकार के जॉइन्स को उदाहरणों सहित समझाइए।

टी-एसक्यूएल में जॉइन्स संबंधित कॉलम के आधार पर दो या अधिक तालिकाओं की पंक्तियों को जोड़ते हैं। रिलेशनल डेटा क्वेरीज़ के लिए उनके प्रकारों को समझना महत्वपूर्ण है।

जॉइन टाइप विवरण उदाहरण वाक्यविन्यास
अंदरूनी शामिल हों केवल मेल खाती पंक्तियाँ लौटाता है SELECT * FROM A INNER JOIN B ON A.id = B.id;
बायाँ शामिल हों बाएँ से सभी + दाएँ से मिलान SELECT * FROM A LEFT JOIN B ON A.id = B.id;
सही शामिल हैं सभी दाईं ओर से + बाईं ओर से मिलान SELECT * FROM A RIGHT JOIN B ON A.id = B.id;
पूर्ण जुड़ाव बाएँ + दाएँ को जोड़ता है SELECT * FROM A FULL JOIN B ON A.id = B.id;
क्रॉस जॉइन कार्तीय गुणन SELECT * FROM A CROSS JOIN B;

व्यावहारिक उदाहरण: में शामिल होने से Orders और Customers यह जानने के लिए कि किन ग्राहकों ने ऑर्डर दिए हैं INNER JOIN.


3) कॉमन टेबल एक्सप्रेशन (सीटीई) क्या हैं, और उनके क्या लाभ हैं?

एक सामान्य तालिका अभिव्यक्ति (सीटीई) एक अस्थायी नामित परिणाम सेट प्रदान करता है जिसे एक तालिका के भीतर संदर्भित किया जा सकता है। SELECT, INSERT, UPDATEया, DELETE यह पठनीयता में सुधार करता है और पुनरावर्ती प्रश्नों को सरल बनाता है।

लाभ:

  • क्वेरी स्पष्टता और रखरखाव को बढ़ाता है.
  • पुनरावर्तन सक्षम करता है (संगठन चार्ट जैसे पदानुक्रमित डेटा के लिए).
  • बार-बार आने वाली उप-प्रश्नों से बचने में सहायता करता है।
  • बड़ी स्क्रिप्ट में मॉड्यूलरिटी बढ़ाता है।

उदाहरण:

WITH EmployeeCTE AS (
    SELECT EmpID, EmpName, ManagerID
    FROM Employees
)
SELECT * FROM EmployeeCTE WHERE ManagerID IS NULL;

4) टी-एसक्यूएल में अस्थायी तालिकाएं और तालिका चर कैसे भिन्न होते हैं?

दोनों का उपयोग मध्यवर्ती परिणामों को संग्रहीत करने के लिए किया जाता है, लेकिन उनका व्यवहार और दायरा काफी भिन्न होता है।

Feature अस्थायी तालिका (#Temp) तालिका चर (@TableVar)
इसमें संग्रहित TempDB मेमोरी (सीमित TempDB उपयोग के साथ)
लेन-देन संबंधी दायरा लेनदेन का अनुसरण करता है लेन-देन से स्वतंत्र
अनुक्रमित समर्थित सीमित
प्रदर्शन बड़े डेटासेट के लिए बेहतर छोटे डेटासेट के लिए बेहतर

उदाहरण:

DECLARE @TableVar TABLE (ID INT, Name NVARCHAR(50));
INSERT INTO @TableVar VALUES (1, 'Alice');

बड़े डेटासेट के साथ काम करते समय या इंडेक्स की आवश्यकता होने पर अस्थायी तालिकाओं का उपयोग करें।


5) टी-एसक्यूएल में लेनदेन की अवधारणा और उनके जीवनचक्र की व्याख्या करें।

T-SQL में एक लेनदेन यह सुनिश्चित करता है कि संचालनों का एक क्रम एक एकल तार्किक इकाई के रूप में निष्पादित हो। जीवनचक्र में शामिल हैं BEGIN परिवहन, COMMIT, तथा रोलबैक.

ट्रेनिंग विवरण
BEGIN परिवहन लेन-देन शुरू होता है
संचार परिवहन सभी परिवर्तनों को स्थायी रूप से सहेजता है
रोलबैक लेनदेन अंतिम BEGIN के बाद से सभी कार्यों को पूर्ववत करता है

उदाहरण:

BEGIN TRANSACTION;
UPDATE Accounts SET Balance = Balance - 100 WHERE AccID = 1;
UPDATE Accounts SET Balance = Balance + 100 WHERE AccID = 2;
COMMIT TRANSACTION;

यदि बीच में कोई त्रुटि हो जाए, ROLLBACK डेटा अखंडता बनाए रखता है.


6) DELETE, TRUNCATE और DROP कमांड में क्या अंतर है?

आदेश समारोह रोलबैक संरचना को प्रभावित करता है गति
हटाएँ विशिष्ट पंक्तियाँ हटाता है हाँ नहीं और धीमा
TRUNCATE सभी पंक्तियाँ हटाता है नहीं (आमतौर पर) नहीं तेज
ड्रॉप संपूर्ण तालिका हटाता है नहीं हाँ सबसे तेजी

उदाहरण:

DELETE FROM Employees WHERE Department = 'HR';
TRUNCATE TABLE TempData;
DROP TABLE OldLogs;

उपयोग DELETE चयनात्मक निष्कासन के लिए, TRUNCATE समाशोधन के लिए, और DROP टेबल को पूरी तरह से हटाने के लिए.


7) टी-एसक्यूएल में त्रुटि प्रबंधन कैसे काम करता है?

टी-एसक्यूएल संरचित त्रुटि प्रबंधन प्रदान करता है TRY...CATCH ब्लॉक, डेवलपर्स को रनटाइम त्रुटियों को सुचारू रूप से प्रबंधित करने की अनुमति देता है।

उदाहरण:

BEGIN TRY
    INSERT INTO Employees VALUES (1, 'John');
END TRY
BEGIN CATCH
    PRINT 'Error: ' + ERROR_MESSAGE();
END CATCH;

यह तरीका दोषपूर्ण संचालन को अलग करता है और लेनदेन को डेटा अखंडता को दूषित करने से रोकता है। डेवलपर्स सिस्टम फ़ंक्शन जैसे ERROR_NUMBER() or ERROR_SEVERITY() निदान के लिए.


8) टी-एसक्यूएल क्वेरी प्रदर्शन को अनुकूलित करने के विभिन्न तरीके क्या हैं?

अनुकूलन में SQL डिज़ाइन, अनुक्रमण और निष्पादन रणनीतियों को बेहतर बनाना शामिल है।

मुख्य तकनीकें:

  1. उपयोग उचित अनुक्रमण अक्सर पूछे जाने वाले कॉलम पर.
  2. से बचें SELECT * — स्तंभों को स्पष्ट रूप से निर्दिष्ट करें.
  3. उपयोग सेट-आधारित संचालन कर्सर के स्थान पर.
  4. SQL सर्वर प्रबंधन स्टूडियो का उपयोग करके निष्पादन योजनाओं का विश्लेषण करें।
  5. उपयोग कुशलतापूर्वक जुड़ें उचित चालू शर्तों के साथ।
  6. कम करना नेस्टेड सबक्वेरीज़; सी.टी.ई. या अस्थायी तालिकाओं को प्राथमिकता दें।

टी-एसक्यूएल में प्रदर्शन ट्यूनिंग में क्वेरी निष्पादन आँकड़ों की निगरानी भी शामिल है SET STATISTICS IO ON.


9) विंडो फ़ंक्शन क्या हैं, और आपको उनका उपयोग कब करना चाहिए?

विंडो फ़ंक्शन वर्तमान पंक्ति से संबंधित पंक्तियों के समूह में गणनाएँ करते हैं, उन्हें किसी एकल परिणाम में संक्षिप्त किए बिना। ये रैंकिंग, रनिंग टोटल और मूविंग एवरेज के लिए उपयोगी होते हैं।

उदाहरण:

SELECT
    EmployeeID,
    Salary,
    RANK() OVER (ORDER BY Salary DESC) AS RankBySalary
FROM Employees;

सामान्य कार्यों में शामिल हैं RANK(), ROW_NUMBER(), DENSE_RANK(), तथा SUM() OVER().

ये विश्लेषणात्मक कार्यभार के लिए महत्वपूर्ण हैं जहां आपको समेकित और पंक्ति-स्तरीय दोनों डेटा की आवश्यकता होती है।


10) क्लस्टर्ड और नॉन-क्लस्टर्ड इंडेक्स के बीच अंतर स्पष्ट करें।

Feature Clusterएड इंडेक्स नClusterएड इंडेक्स
आधार सामग्री भंडारण तालिका को भौतिक रूप से पुनर्व्यवस्थित करता है अलग संरचना
प्रति टेबल संख्या एक विभिन्न
प्रदर्शन श्रेणी प्रश्नों के लिए तेज़ विशिष्ट लुकअप के लिए तेज़
उपयोग उदाहरण प्राथमिक कुंजी द्वितीयक खोजें

उदाहरण:

CREATE CLUSTERED INDEX IX_EmployeeID ON Employees(EmployeeID);
CREATE NONCLUSTERED INDEX IX_Dept ON Employees(Department);

सही इंडेक्स प्रकार का चयन सीधे क्वेरी निष्पादन गति और भंडारण दक्षता को प्रभावित करता है।


11) टी-एसक्यूएल में संग्रहीत प्रक्रियाएं क्या हैं और उनका उपयोग क्यों किया जाता है?

एक संग्रहीत कार्यविधि, सर्वर पर संग्रहीत एक या अधिक SQL कथनों का पूर्व-संकलित संग्रह है। ये आपको तर्क को समाहित करने और बिना पुनः संकलित किए उसे बार-बार निष्पादित करने की अनुमति देकर प्रदर्शन, सुरक्षा और पुन: प्रयोज्यता को बढ़ाती हैं। संग्रहीत कार्यविधि नेटवर्क ट्रैफ़िक को कम करती हैं और गतिशील निष्पादन के लिए मापदंडों का समर्थन करती हैं।

उदाहरण:

CREATE PROCEDURE GetEmployeeDetails @Dept NVARCHAR(50)
AS
BEGIN
    SELECT EmpName, Position FROM Employees WHERE Department = @Dept;
END;

लाभ:

  • पूर्व संकलन के कारण बेहतर प्रदर्शन.
  • नियंत्रित निष्पादन के माध्यम से बेहतर सुरक्षा।
  • आसान कोड रखरखाव और मॉड्यूलरीकरण।

12) टी-एसक्यूएल में संग्रहीत प्रक्रिया और फ़ंक्शन के बीच अंतर समझाएं।

पहलू संग्रहीत प्रक्रिया समारोह
वापसी प्रकार एकाधिक मान लौटा सकता है एकल मान या तालिका लौटानी होगी
SELECT में उपयोग करें अनुमति नहीं रख सकते है
गलती संभालना TRY…CATCH समर्थित सीमित
निष्पादन के माध्यम से निष्पादित EXEC SQL के साथ इनलाइन उपयोग किया जाता है
लेनदेन नियंत्रण समर्थित समर्थित नहीं

उदाहरण:

  • प्रक्रिया: EXEC GetEmployeeDetails 'HR';
  • समारोह: SELECT dbo.GetSalary(101);

फ़ंक्शन गणना के लिए आदर्श होते हैं; प्रक्रियाएं व्यावसायिक तर्क और डेटा हेरफेर के लिए बेहतर होती हैं।


13) टी-एसक्यूएल में ट्रिगर क्या है और इसके प्रकार क्या हैं?

ट्रिगर एक विशेष संग्रहित प्रक्रिया है जो किसी तालिका या दृश्य पर कुछ घटनाओं (INSERT, UPDATE, DELETE) के प्रत्युत्तर में स्वचालित रूप से निष्पादित होती है। ट्रिगर का उपयोग व्यावसायिक नियमों को लागू करने, परिवर्तनों का ऑडिट करने या संदर्भात्मक अखंडता बनाए रखने के लिए किया जाता है।

प्रकार विवरण
ट्रिगर के बाद घटना पूर्ण होने के बाद फायर होता है
ट्रिगर के बजाय ट्रिगरिंग इवेंट के स्थान पर निष्पादित होता है

उदाहरण:

CREATE TRIGGER trgAfterInsert
ON Employees
AFTER INSERT
AS
BEGIN
    PRINT 'New employee record added!';
END;

ट्रिगर्स का अत्यधिक उपयोग करने से बचें - वे प्रदर्शन को प्रभावित कर सकते हैं और डिबगिंग को जटिल बना सकते हैं।


14) आप T-SQL में NULL मानों को कैसे संभालते हैं?

NULL अनुपलब्ध या अज्ञात डेटा को दर्शाता है। T-SQL इसे प्रभावी ढंग से संभालने के लिए कई फ़ंक्शन प्रदान करता है:

  • ISNULL(expression, replacement) → NULL को डिफ़ॉल्ट से प्रतिस्थापित करता है।
  • COALESCE(expression1, expression2, ...) → पहला गैर-शून्य मान लौटाता है.
  • NULLIF(expression1, expression2) → यदि अभिव्यक्तियाँ समान हैं तो NULL लौटाता है।

उदाहरण:

SELECT ISNULL(Manager, 'No Manager') AS ManagerName FROM Employees;

सर्वोत्तम अभ्यास: अप्रत्याशित परिणामों से बचने के लिए हमेशा जॉइन्स और शर्तों में NULLs को ध्यान में रखें।


15) टी-एसक्यूएल में कर्सर क्या हैं और इनसे कब बचना चाहिए?

कर्सर क्वेरी परिणामों की पंक्ति-दर-पंक्ति प्रोसेसिंग की अनुमति देता है — यह जटिल तर्क के लिए उपयोगी है जहाँ सेट-आधारित ऑपरेशन अपर्याप्त होते हैं। हालाँकि, कर्सर धीमा और संसाधन भारी सेट-आधारित विकल्पों की तुलना में।

उदाहरण:

DECLARE emp_cursor CURSOR FOR SELECT EmpName FROM Employees;
OPEN emp_cursor;
FETCH NEXT FROM emp_cursor;
-- process
CLOSE emp_cursor;
DEALLOCATE emp_cursor;

नुकसान:

  • स्मृति उपयोग में वृद्धि.
  • खराब मापनीयता.
  • प्रदर्शन में कमी।

वैकल्पिक: जब भी संभव हो, टेबल जॉइन, सबक्वेरी या विंडो फ़ंक्शन का उपयोग करें।


16) MERGE कथन और इसके उपयोग के मामलों की व्याख्या करें।

RSI MERGE कथन निष्पादित करता है सम्मिलित करें, अद्यतन, तथा हटाएँ एकल कमांड में सभी ऑपरेशन - दो तालिकाओं को सिंक्रनाइज़ करने के लिए आदर्श।

वाक्यविन्यास उदाहरण:

MERGE INTO Target AS T
USING Source AS S
ON T.ID = S.ID
WHEN MATCHED THEN UPDATE SET T.Name = S.Name
WHEN NOT MATCHED BY TARGET THEN INSERT (ID, Name) VALUES (S.ID, S.Name)
WHEN NOT MATCHED BY SOURCE THEN DELETE;

बक्सों का इस्तेमाल करें:

  • डेटा वेयरहाउसिंग (सिंक स्टेजिंग और लक्ष्य तालिकाएं).
  • वृद्धिशील डेटा लोडिंग.
  • ऑडिट या आयाम तालिकाओं का रखरखाव करना।

17) टी-एसक्यूएल में उपयोगकर्ता-परिभाषित फ़ंक्शन (यूडीएफ) के विभिन्न प्रकार क्या हैं?

प्रकार विवरण उदाहरण
अदिश एकल मान लौटाता है CREATE FUNCTION GetTax(@Salary DECIMAL) RETURNS DECIMAL
इनलाइन तालिका-मूल्यवान एकल के माध्यम से एक तालिका लौटाता है SELECT RETURN SELECT * FROM Employees WHERE Dept = 'HR'
बहु-कथन तालिका-मूल्यवान एकाधिक कथनों के बाद एक तालिका लौटाता है जटिल तर्क के लिए उपयोगी

फंक्शन कोड पुनः उपयोग को बढ़ावा देते हैं और मॉड्यूलर क्वेरी डिज़ाइन को बढ़ाते हैं।

प्रदर्शन अनुकूलन के लिए जब भी संभव हो, उन्हें नियतात्मक होना चाहिए (समान इनपुट के लिए समान परिणाम लौटाना)।


18) सामान्यीकरण क्या है, और इसके क्या फायदे और नुकसान हैं?

सामान्यीकरण, डेटाबेस में डेटा को व्यवस्थित करने की प्रक्रिया है ताकि अतिरेक को कम किया जा सके और अखंडता में सुधार किया जा सके। इसमें तालिकाओं को छोटी, संबंधित इकाइयों में विभाजित करना शामिल है।

सामान्य रूप नियम उदाहरण
1NF दोहराए जाने वाले समूहों को हटाएँ अल्पविराम से अलग किए गए डेटा को विभाजित करें
2NF आंशिक निर्भरताएँ हटाएँ प्राथमिक कुंजी पर पूर्ण निर्भरता सुनिश्चित करें
3NF सकर्मक निर्भरताएँ हटाएँ व्युत्पन्न विशेषताओं को स्थानांतरित करें

लाभ:

  • अतिरेक को कम करता है.
  • डेटा की एकरूपता सुनिश्चित करता है.
  • रखरखाव को सरल बनाता है.

नुकसान:

  • जटिल जोड़.
  • विश्लेषणात्मक प्रश्नों के लिए संभावित प्रदर्शन समझौता।

19) टी-एसक्यूएल में विभिन्न प्रकार की बाधाएं क्या हैं?

प्रतिबंध तालिका के भीतर डेटा अखंडता पर नियम लागू करते हैं।

बाधा उद्देश्य उदाहरण
प्राथमिक कुंजी प्रत्येक पंक्ति को विशिष्ट रूप से पहचानता है PRIMARY KEY (EmpID)
विदेश का प्रमुख दो तालिकाओं को जोड़ता है FOREIGN KEY (DeptID)
अद्वितीय अद्वितीय स्तंभ मान सुनिश्चित करता है UNIQUE (Email)
जांच डेटा श्रेणी को मान्य करता है CHECK (Age >= 18)
चूक डिफ़ॉल्ट मान प्रदान करता है DEFAULT GETDATE()

बाधाएं सटीकता और विश्वसनीयता सुनिश्चित करती हैं, जिससे व्यापक अनुप्रयोग-स्तरीय सत्यापन की आवश्यकता कम हो जाती है।


20) आप टी-एसक्यूएल में अनुमतियों और सुरक्षा का प्रबंधन कैसे करते हैं?

T-SQL डेटाबेस सुरक्षा का प्रबंधन करता है लॉगिन, उपयोगकर्ता, भूमिकाएँ और अनुमतियाँ.

अनुमतियाँ ऑब्जेक्ट या स्कीमा स्तर पर दी या रद्द की जा सकती हैं।

उदाहरण:

CREATE LOGIN John WITH PASSWORD = 'Strong@123';
CREATE USER John FOR LOGIN John;
GRANT SELECT, INSERT ON Employees TO John;

सर्वोत्तम प्रथाएं:

  • उपयोग भूमिकाओं प्रत्यक्ष उपयोगकर्ता अनुमतियों के बजाय।
  • उपयोग करने से बचें sa या अनुप्रयोगों के लिए सिस्टम खाते।
  • अनुमतियों का नियमित रूप से ऑडिट करें sys.database_permissions.

उचित अनुमति प्रबंधन न्यूनतम विशेषाधिकार के सिद्धांत और सुरक्षा नीतियों के अनुपालन को सुनिश्चित करता है।


21) टी-एसक्यूएल में विभिन्न लेनदेन अलगाव स्तर क्या हैं?

लेन-देन अलगाव स्तर यह निर्धारित करते हैं कि एक लेन-देन को अन्य से कैसे अलग किया जाए - संतुलन स्थिरता साथ में संगामितिSQL सर्वर निम्नलिखित का समर्थन करता है:

अलगाव स्तर विवरण गंदा पढ़ना गैर-दोहराए जाने योग्य पठन फैंटम रीड
पढ़े लिखे अप्रतिबद्ध डेटा पढ़ता है हाँ हाँ हाँ
पढ़ें गए डिफ़ॉल्ट; लॉक गंदे रीड्स को रोकते हैं नहीं हाँ हाँ
दोबारा पढ़ने योग्य प्रतिबद्ध होने तक डेटा परिवर्तन को रोकता है नहीं नहीं हाँ
serializable पूर्ण अलगाव; उच्चतम लॉकिंग नहीं नहीं नहीं
स्नैपशॉट संस्करणीकरण का उपयोग करता है, लॉकिंग का नहीं नहीं नहीं नहीं

उदाहरण:

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
BEGIN TRANSACTION;
-- your code
COMMIT;

उपयोग स्नैपशॉट उच्च समवर्ती प्रणालियों के लिए स्थिरता का त्याग किए बिना अवरोध को न्यूनतम करना।


22) SQL सर्वर में डेडलॉक क्या है, और आप इसे कैसे रोक सकते हैं?

A गतिरोध यह तब होता है जब दो लेनदेन एक-दूसरे के लिए ज़रूरी लॉक रखते हैं, जिसके परिणामस्वरूप गतिरोध पैदा होता है। SQL सर्वर स्वचालित रूप से एक लेनदेन को गतिरोध का शिकार मानकर उसे समाप्त कर देता है।

उदाहरण परिदृश्य:

  • लेनदेन A, Table1 को लॉक करता है, फिर Table2 की प्रतीक्षा करता है।
  • लेनदेन B, Table2 को लॉक कर देता है, फिर Table1 की प्रतीक्षा करता है।

रोकथाम तकनीकें:

  1. उसी क्रम में संसाधनों तक पहुँचें.
  2. लेन-देन छोटा रखें.
  3. उचित अलगाव स्तर का उपयोग करें।
  4. लेन-देन के अंदर उपयोगकर्ता की सहभागिता से बचें।

वास्तविक समय में गतिरोधों का पता लगाने के लिए SQL प्रोफाइलर या विस्तारित ईवेंट का उपयोग करें।


23) निराशावादी और आशावादी समवर्ती नियंत्रण के बीच अंतर स्पष्ट करें।

प्रकार विवरण लॉकिंग तंत्र उदाहरण
निराशावादी लेन-देन के दौरान डेटा लॉक करता है भारी लॉकिंग उच्च संघर्ष वातावरण
आशावादी पंक्ति संस्करण का उपयोग करता है, प्रतिबद्ध होने से पहले जाँच करता है न्यूनतम लॉकिंग पढ़ने-भारी, कम-संघर्ष कार्यभार

उदाहरण:

  • निराशावादी: डिफ़ॉल्ट READ COMMITTED ताला लगाना
  • आशावादी: SNAPSHOT पंक्ति संस्करण के साथ अलगाव.

आशावादी समवर्तीता बड़े पठन कार्यों और अनियमित अद्यतनों वाली प्रणालियों के लिए प्रदर्शन को बढ़ाती है।


24) आप धीमी गति से चलने वाली टी-एसक्यूएल क्वेरी का विश्लेषण और अनुकूलन कैसे कर सकते हैं?

  1. निष्पादन योजना की जाँच करें: स्कैन, गुम इंडेक्स और महंगे ऑपरेशन की पहचान करें।
  2. SET STATISTICS IO/TIME का उपयोग करें: I/O और CPU उपयोग का विश्लेषण करें.
  3. कर्सर और लूप से बचें: सेट-आधारित परिचालनों से प्रतिस्थापित करें.
  4. सूचकांक अनुकूलन: खंडित अनुक्रमणिकाओं को जोड़ें या पुनर्गठित करें.
  5. पैरामीटर सूँघना: उपयोग OPTION (RECOMPILE) नई योजनाएँ बनाने के लिए.

उदाहरण:

SET STATISTICS TIME ON;
SELECT * FROM Orders WHERE CustomerID = 123;

धीमी क्वेरीज़ की नियमित निगरानी करना गतिशील प्रबंधन दृश्य (DMVs) पसंद sys.dm_exec_query_stats यह एक सर्वोत्तम अभ्यास है।


25) डायनेमिक SQL क्या है और इसके फायदे और जोखिम क्या हैं?

डायनेमिक SQL आपको रनटाइम पर वेरिएबल्स का उपयोग करके गतिशील रूप से SQL स्टेटमेंट्स बनाने की अनुमति देता है।

उदाहरण:

DECLARE @sql NVARCHAR(MAX);
SET @sql = 'SELECT * FROM Employees WHERE Dept = ''' + @Dept + '''';
EXEC(@sql);

लाभ:

  • परिवर्तनीय तालिका नाम या फ़िल्टर के लिए लचीलापन.
  • एकाधिक स्कीमा के लिए पुन: प्रयोज्य.

नुकसान:

  • की चपेट में SQL इंजेक्शन यदि पैरामीटराइज़ नहीं किया गया है.
  • डिबग करना और रखरखाव करना कठिन है।

हमेशा उपयोग करें sp_executesql सुरक्षा के मापदंडों के साथ।


26) टी-एसक्यूएल में अस्थायी ऑब्जेक्ट क्या हैं और वे कैसे भिन्न हैं?

अस्थायी वस्तुओं को संग्रहित किया जाता है TempDB और मध्यवर्ती डेटा को प्रबंधित करने में सहायता मिलेगी।

वस्तु प्रकार विस्तार उदाहरण
स्थानीय अस्थायी तालिका सत्र-विशिष्ट CREATE TABLE #TempTable
वैश्विक तापमान तालिका सभी सत्रों के लिए दृश्यमान CREATE TABLE ##TempGlobal
तालिका चर बैच विशेष DECLARE @Temp TABLE (...)

सर्वोत्तम प्रथाएं:

  • छोटे डेटासेट के लिए तालिका चर को प्राथमिकता दें।
  • अनुक्रमण आवश्यकताओं वाले बड़े डेटा के लिए स्थानीय अस्थायी तालिकाओं का उपयोग करें।
  • संसाधनों को तेजी से जारी करने के लिए अस्थायी तालिकाओं को स्पष्ट रूप से हटा दें।

27) आप टी-एसक्यूएल में विंडो विभाजन फ़ंक्शन का उपयोग कैसे करते हैं?

विभाजन, डेटा के विशिष्ट उपसमूहों पर विंडो फ़ंक्शन लागू करने की अनुमति देता है।

उदाहरण:

SELECT
    Department,
    EmpName,
    Salary,
    RANK() OVER (PARTITION BY Department ORDER BY Salary DESC) AS RankInDept
FROM Employees;

लाभ:

  • प्रत्येक समूह की रैंकिंग, कुल योग और औसत की कुशलतापूर्वक गणना करता है।
  • स्व-संयोजन या उप-क्वेरी की आवश्यकता समाप्त हो जाती है।

बक्सों का इस्तेमाल करें: वेतन बैंड, बिक्री रैंकिंग और प्रवृत्ति विश्लेषण।


28) T-SQL में UNION और UNION ALL में क्या अंतर है?

धारा डुप्लिकेट प्रदर्शन उदाहरण
संघ डुप्लिकेट हटाता है धीमा (सॉर्ट/डिस्टिंक्ट का उपयोग करता है) परिणाम सेटों को साफ़-सुथरे ढंग से संयोजित करना
यूनिअन ऑल डुप्लिकेट रखता है तेज़ एकत्रीकरण या डेटा माइग्रेशन

उदाहरण:

SELECT City FROM Customers
UNION
SELECT City FROM Suppliers;

पसंद करते हैं UNION ALL जब डुप्लिकेट स्वीकार्य हों और प्रदर्शन मायने रखता हो।


29) आप T-SQL में JSON डेटा के साथ कैसे काम करते हैं?

SQL सर्वर JSON डेटा को पार्स करने और उत्पन्न करने के लिए मूल JSON फ़ंक्शन का समर्थन करता है।

उदाहरण:

DECLARE @json NVARCHAR(MAX) = '{"Name":"John","Age":30}';
SELECT JSON_VALUE(@json, '$.Name') AS Name;

मुख्य कार्यों:

  • JSON_VALUE() → अदिश मान निकालता है.
  • JSON_QUERY() → ऑब्जेक्ट/सरणी निकालता है.
  • OPENJSON() → JSON को पंक्तियों में पार्स करता है।
  • FOR JSON → क्वेरी परिणामों को JSON प्रारूप में परिवर्तित करता है।

API, हाइब्रिड सिस्टम और NoSQL एकीकरण के लिए उपयोगी।


30) आप SQL सर्वर में TempDB का प्रबंधन और अनुकूलन कैसे कर सकते हैं?

TempDB अस्थायी संग्रहण और संस्करण निर्धारण के लिए महत्वपूर्ण सिस्टम डेटाबेस है। कुप्रबंधन गंभीर प्रदर्शन समस्याएँ पैदा कर सकता है।

अनुकूलन तकनीकें:

  1. TempDB को फास्ट स्टोरेज (SSD) पर रखें।
  2. डेटा और लॉग फ़ाइलों का पूर्व-आकार.
  3. एकाधिक डेटा फ़ाइलों का उपयोग करें (प्रति CPU कोर 1 से 8 तक)।
  4. मॉनिटर के साथ sys.dm_db_file_space_usage.
  5. अस्थायी वस्तुओं को नियमित रूप से साफ करें।

उदाहरण प्रश्न:

SELECT * FROM sys.dm_db_file_space_usage;

TempDB का सक्रिय रूप से प्रबंधन करने से आवंटन पृष्ठों पर विवाद से बचा जा सकता है और समग्र डेटाबेस थ्रूपुट में सुधार होता है।


31) टी-एसक्यूएल में क्वेरी संकेत क्या हैं, और उनका उपयोग कब किया जाना चाहिए?

क्वेरी संकेत SQL सर्वर ऑप्टिमाइज़र को उसकी सामान्य निष्पादन योजना को बदलने का निर्देश देते हैं।

इनका उपयोग संयम से किया जाना चाहिए - केवल तभी जब आप डेटा वितरण और निष्पादन संदर्भ को पूरी तरह से समझ लें।

उदाहरण:

SELECT * FROM Orders WITH (NOLOCK) WHERE CustomerID = 102;

सामान्य संकेत:

  • NOLOCK: बिना लॉक के पढ़ता है (अप्रतिबद्ध डेटा पढ़ सकता है).
  • FORCESEEK: स्कैन के स्थान पर इंडेक्स सीक को बल देता है।
  • OPTIMIZE FOR: योजना निर्माण के लिए पैरामीटर मानों का मार्गदर्शन करता है।
  • RECOMPILE: प्रत्येक निष्पादन के लिए पुनः संकलन को बाध्य करता है।

चेतावनी: संकेतों का अत्यधिक उपयोग डेटा बढ़ने या पैटर्न बदलने पर प्रदर्शन को कम कर सकता है। इनका उपयोग केवल तभी करें जब ऑप्टिमाइज़र की योजना स्पष्ट रूप से अक्षम हो।


32) SQL सर्वर में निष्पादन योजना कैशिंग की अवधारणा को समझाइए।

SQL सर्वर पुनरावर्ती प्रश्नों के लिए पुनः संकलन से बचने के लिए निष्पादन योजनाओं को कैश करता है।

जब वही क्वेरी समान संरचना के साथ पुनः निष्पादित होती है, तो यह कैश्ड योजना का पुनः उपयोग करती है, जिससे प्रदर्शन में सुधार होता है।

उदाहरण:

EXEC GetCustomerOrders @CustomerID = 101;

लाभ:

  • सीपीयू ओवरहेड कम करता है.
  • प्रतिक्रिया समय में स्थिरता में सुधार करता है।

समस्याएं:

  • पैरामीटर सूँघना अकुशल योजनाएं उत्पन्न हो सकती हैं।
  • प्लान कैश ब्लोट मेमोरी का उपभोग कर सकता है।

शमन: उपयोग OPTION (RECOMPILE) or OPTIMIZE FOR UNKNOWN जहां पैरामीटर व्यापक रूप से भिन्न होते हैं।


33) पैरामीटर स्निफिंग क्या है, और यह प्रदर्शन को कैसे प्रभावित कर सकता है?

पैरामीटर स्निफिंग तब होती है जब SQL सर्वर किसी क्वेरी के प्रथम निष्पादन से पैरामीटर मानों का उपयोग करके एक योजना तैयार करता है, जिसका पुनः उपयोग किया जाता है - भले ही वह बाद के निष्पादनों के लिए उप-इष्टतम हो।

उदाहरण परिदृश्य:

  • पहला निष्पादन: छोटा डेटासेट → इंडेक्स सीक प्लान।
  • अगला निष्पादन: बड़ा डेटासेट → वही योजना पुनः उपयोग की गई, लेकिन धीमी।

समाधान की:

  1. उपयोग OPTION (RECOMPILE) नई योजनाएँ बनाने के लिए।
  2. पैरामीटर मानों को छिपाने के लिए स्थानीय चर का उपयोग करें.
  3. उपयोग OPTIMIZE FOR or OPTIMIZE FOR UNKNOWN.

पैरामीटर स्निफिंग, टी-एसक्यूएल में अप्रत्याशित प्रदर्शन के शीर्ष वास्तविक-विश्व दोषियों में से एक है।


34) आप SQL सर्वर में क्वेरी प्रदर्शन की निगरानी और विश्लेषण कैसे करते हैं?

आप प्रदर्शन को प्रोफाइल और ट्यून करने के लिए कई उपकरणों और DMV का उपयोग कर सकते हैं:

  • निष्पादन योजनाएँ: Ctrl + M एसएसएमएस में या sys.dm_exec_query_plan.
  • डीएमवी:

    • sys.dm_exec_query_stats - सीपीयू और अवधि.
    • sys.dm_exec_sql_text - एसक्यूएल पाठ.
    • sys.dm_exec_requests – सक्रिय प्रश्न.
  • प्रदर्शन मॉनिटर और विस्तारित ईवेंट दीर्घकालिक ट्रैकिंग के लिए.

उदाहरण:

SELECT TOP 5
    total_worker_time / execution_count AS AvgCPU,
    total_elapsed_time / execution_count AS AvgTime,
    SUBSTRING(qt.text, 1, 100) AS QueryText
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt
ORDER BY AvgTime DESC;

35) क्वेरी ऑप्टिमाइजेशन में सांख्यिकी की भूमिका समझाइए।

सांख्यिकी डेटा वितरण (जैसे, विशिष्ट मान, घनत्व, हिस्टोग्राम) का वर्णन करती है जिसका उपयोग अनुकूलक कार्डिनैलिटी का अनुमान लगाने के लिए करता है।

यदि आंकड़े पुराने हैं, तो SQL सर्वर खराब योजनाएं चुन सकता है।

प्रमुख आदेश:

  • UPDATE STATISTICS Employees;
  • sp_updatestats;
  • स्वतः अद्यतन सेटिंग: डिफ़ॉल्ट रूप से सक्षम.

सर्वोत्तम प्रथाएं:

  • रखना AUTO_UPDATE_STATISTICS सक्षम होना चाहिए।
  • बड़ी तालिकाओं के लिए, मैन्युअल अपडेट शेड्यूल करें.
  • उपयोग FULLSCAN महत्वपूर्ण अनुक्रमणिकाओं के लिए.

पुराने आंकड़े प्रदर्शन के मूक हत्यारे हैं।


36) इंडेक्स सीक और इंडेक्स स्कैन में क्या अंतर है?

Operaउत्पादन विवरण प्रदर्शन उदाहरण
इंडेक्स सीक सीधे मेल खाती पंक्तियों पर नेविगेट करता है तेज अत्यधिक चयनात्मक प्रश्न
इंडेक्स स्कैन सभी अनुक्रमणिका प्रविष्टियों को क्रमिक रूप से पढ़ता है और धीमा कम-चयनात्मकता वाले प्रश्न

उदाहरण:

SELECT * FROM Orders WHERE OrderID = 123; -- Seek
SELECT * FROM Orders WHERE Status = 'Active'; -- May Scan

अनुकूलन सुझाव: स्कैन को खोज में बदलने के लिए फ़िल्टर किए गए या कवरिंग इंडेक्स बनाएं।


37) विभाजित तालिकाओं और उनके लाभों की व्याख्या करें।

विभाजन एक बड़ी तालिका को छोटे, प्रबंधनीय टुकड़ों (विभाजन) में विभाजित करता है, जो अक्सर एक श्रेणी स्तंभ (जैसे दिनांक) पर आधारित होता है।

लाभ:

  • तेज़ डेटा प्रबंधन (विभाजन द्वारा लोड/अनलोड)।
  • बड़े डेटासेट पर बेहतर क्वेरी प्रदर्शन.
  • विभाजित स्कैन के लिए समानांतर प्रसंस्करण.

उदाहरण:

CREATE PARTITION FUNCTION pfRange (DATETIME)
AS RANGE LEFT FOR VALUES ('2022-12-31', '2023-12-31');

उदाहरण: डेटा वेयरहाउस अरबों पंक्तियों को संभालते हैं जहां पुराने विभाजनों को कुशलतापूर्वक संग्रहीत किया जा सकता है।


38) पुनरावर्ती सी.टी.ई. क्या हैं, और उनकी क्या सीमाएँ हैं?

A पुनरावर्ती सामान्य तालिका अभिव्यक्ति (CTE) स्वयं को संदर्भित करता है, आमतौर पर संगठनात्मक चार्ट या वृक्ष संरचनाओं जैसे पदानुक्रमित डेटा के लिए।

उदाहरण:

WITH EmployeeCTE AS (
    SELECT EmpID, ManagerID, EmpName FROM Employees WHERE ManagerID IS NULL
    UNION ALL
    SELECT e.EmpID, e.ManagerID, e.EmpName
    FROM Employees e
    INNER JOIN EmployeeCTE c ON e.ManagerID = c.EmpID
)
SELECT * FROM EmployeeCTE;

सीमाएँ:

  • डिफ़ॉल्ट पुनरावर्तन सीमा = 100 का स्तर.
  • यदि पुनरावृत्ति गहराई अधिक है तो प्रदर्शन संबंधी समस्याएं उत्पन्न हो सकती हैं।
  • उपयोग OPTION (MAXRECURSION n) सीमा समायोजित करने के लिए.

39) SQL सर्वर लेनदेन में आंतरिक रूप से त्रुटियों को कैसे संभालता है?

जब किसी लेनदेन में कोई त्रुटि होती है:

  • अगर यह है गंभीर (स्तर > 20), तो कनेक्शन तुरंत समाप्त हो जाता है।
  • If गैर गंभीर, इसे पकड़ा जा सकता है TRY...CATCH.

उदाहरण:

BEGIN TRY
    BEGIN TRANSACTION;
    UPDATE Accounts SET Balance -= 500 WHERE ID = 1;
    INSERT INTO AuditLog VALUES ('Debit');
    COMMIT TRANSACTION;
END TRY
BEGIN CATCH
    ROLLBACK TRANSACTION;
    PRINT ERROR_MESSAGE();
END CATCH;

सर्वश्रेष्ठ प्रणालियां: त्रुटि प्रतिरोधकता के लिए DML को हमेशा TRY…CATCH में लपेटें।


40) कुछ उन्नत टी-एसक्यूएल प्रदर्शन ट्यूनिंग तकनीकें क्या हैं?

  1. स्केलर UDF से बचें SELECT में - इनलाइन फ़ंक्शन तेज़ होते हैं।
  2. फ़िल्टर किए गए इंडेक्स का उपयोग करें सूचकांक आकार को कम करने के लिए.
  3. इन-मेमोरी OLTP (हेकाटन) का लाभ उठाएँ उच्च-समवर्ती प्रणालियों के लिए।
  4. बैच मोड निष्पादन विश्लेषण के लिए कॉलमस्टोर इंडेक्स पर.
  5. अंतर्निहित रूपांतरणों को समाप्त करें डेटा प्रकारों का मिलान करके.
  6. क्वेरी स्टोर का उपयोग करें ऐतिहासिक योजनाओं की तुलना करना।

अंतर्निहित रूपांतरणों का पता लगाने के लिए उदाहरण:

SELECT * FROM sys.dm_exec_query_stats CROSS APPLY sys.dm_exec_query_plan(plan_handle)
WHERE CAST(query_plan AS NVARCHAR(MAX)) LIKE '%CONVERT_IMPLICIT%';

प्रदर्शन ट्यूनिंग एक सतत प्रक्रिया है - एक बार की घटना नहीं।


41) आप SQL सर्वर में सबसे अधिक संसाधन-गहन क्वेरीज़ की पहचान कैसे करेंगे?

आप गतिशील प्रबंधन दृश्यों (DMV) का उपयोग करके उच्च-लागत वाली क्वेरीज़ की पहचान कर सकते हैं, जो ऐतिहासिक निष्पादन आँकड़े रिकॉर्ड करते हैं।

उदाहरण:

SELECT TOP 10
    total_logical_reads / execution_count AS AvgReads,
    total_worker_time / execution_count AS AvgCPU,
    total_elapsed_time / execution_count AS AvgDuration,
    SUBSTRING(qt.text, 1, 200) AS QueryText
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt
ORDER BY AvgCPU DESC;

मुख्य मैट्रिक्स:

  • AvgCPU: प्रति निष्पादन औसत CPU समय.
  • AvgReads: I/O तीव्रता.
  • AvgDuration: निष्पादन विलंबता.

यह दृष्टिकोण डीबीए को भारी प्रश्नों को अलग करने में मदद करता है, इससे पहले कि उपयोगकर्ता प्रदर्शन में गिरावट को नोटिस करें।


42) आप SQL सर्वर में गुम इंडेक्स का पता कैसे लगा सकते हैं और उसे ठीक कर सकते हैं?

SQL सर्वर स्वचालित रूप से DMVs के माध्यम से अनुपलब्ध सूचकांक अनुशंसाओं को ट्रैक करता है।

उदाहरण:

SELECT
    migs.user_seeks AS Seeks,
    mid.statement AS TableName,
    mid.equality_columns,
    mid.inequality_columns,
    mid.included_columns
FROM sys.dm_db_missing_index_details mid
JOIN sys.dm_db_missing_index_groups mig ON mid.index_handle = mig.index_handle
JOIN sys.dm_db_missing_index_group_stats migs ON mig.index_group_handle = migs.group_handle
ORDER BY migs.user_seeks DESC;

सर्वोत्तम प्रथाएं:

  • सबसे पहले उच्च-मांग सूचकांक को प्राथमिकता दें।
  • निर्माण से पहले निष्पादन योजनाओं के माध्यम से सत्यापन करें।
  • अति-सूचीकरण से बचें - यह लेखन को धीमा कर देता है।

43) डेटाबेस मिररिंग, प्रतिकृति और लॉग शिपिंग के बीच क्या अंतर है?

Feature उद्देश्य वास्तविक समय विफलता जटिलता
मिररिंग उच्च-उपलब्धता डेटाबेस प्रतिलिपि हाँ स्वचालित मध्यम
प्रतिकृति डेटाबेस में डेटा वितरण आंशिक हाथ-संबंधी हाई
लॉग शिपिंग बैकअप-आधारित DR रणनीति नहीं हाथ-संबंधी निम्न

उपयोग मार्गदर्शन:

  • मिररिंग → OLTP उच्च उपलब्धता प्रणालियाँ.
  • प्रतिकृति → वितरित रिपोर्टिंग.
  • लॉग शिपिंग → आपदा रिकवरी सेटअप.

44) आप SQL सर्वर में अवरोधन समस्याओं का निवारण कैसे करते हैं?

अवरोधन तब होता है जब एक प्रक्रिया में अन्य प्रक्रिया के लिए आवश्यक लॉक होते हैं।

अवरोधकों की पहचान करने के लिए:

SELECT
    blocking_session_id AS Blocker,
    session_id AS Blocked,
    wait_type,
    wait_time,
    wait_resource
FROM sys.dm_exec_requests
WHERE blocking_session_id <> 0;

समाधान की:

  • लेन-देन की लंबाई कम करें.
  • स्नैपशॉट अलगाव का उपयोग करें.
  • लॉकिंग को न्यूनतम करने के लिए क्वेरीज़ को ट्यून करें.
  • लंबे समय से चल रहे खुले लेनदेन की पहचान करें DBCC OPENTRAN.

45) SQL सर्वर का क्वेरी स्टोर प्रदर्शन ट्यूनिंग में कैसे मदद करता है?

क्वेरी स्टोर क्वेरी टेक्स्ट, प्लान और रनटाइम आँकड़े कैप्चर करता है - सक्षम करता है योजना प्रतिगमन विश्लेषण.

इससे यह पता लगाने में मदद मिलती है कि योजना में परिवर्तन के कारण कोई क्वेरी अचानक धीमी हो जाती है।

उदाहरण:

SELECT q.query_id, p.plan_id, rs.avg_duration
FROM sys.query_store_query q
JOIN sys.query_store_plan p ON q.query_id = p.query_id
JOIN sys.query_store_runtime_stats rs ON p.plan_id = rs.plan_id
ORDER BY rs.avg_duration DESC;

लाभ:

  • ऐतिहासिक योजनाओं की तुलना करें.
  • अच्छी योजनाओं को बलपूर्वक लागू करें।
  • समय के साथ प्रदर्शन के रुझान पर नज़र रखें.

46) आप टी-एसक्यूएल अनुप्रयोगों में एसक्यूएल इंजेक्शन को कैसे रोक सकते हैं?

प्राथमिक बचाव:

  1. उपयोग पैरामीटरयुक्त क्वेरीज़ के माध्यम से sp_executesql.
  2. सभी उपयोगकर्ता इनपुट को सत्यापित और स्वच्छ करें।
  3. गतिशील SQL संयोजन से बचें.
  4. रोजगार न्यूनतम विशेषाधिकार सिद्धांत डेटाबेस खातों के लिए.

सुरक्षित उदाहरण:

DECLARE @sql NVARCHAR(MAX);
SET @sql = N'SELECT * FROM Employees WHERE Dept = @Dept';
EXEC sp_executesql @sql, N'@Dept NVARCHAR(50)', @Dept = 'HR';

यद्यपि SQL इंजेक्शन अनुप्रयोग-स्तर पर है, डीबीए को संग्रहीत प्रक्रियाओं और लॉग का ऑडिट करना होगा अपैरामीटरीकृत निष्पादन के लिए.


47) आप गहन प्रदर्शन निगरानी के लिए विस्तारित ईवेंट का उपयोग कैसे करते हैं?

विस्तारित ईवेंट (XEvents) एक हल्का प्रदर्शन निगरानी ढांचा है - SQL ट्रेस का एक आधुनिक विकल्प।

उदाहरण:

CREATE EVENT SESSION TrackQueries
ON SERVER
ADD EVENT sqlserver.sql_statement_completed
(WHERE duration > 1000)
ADD TARGET package0.event_file (SET filename = 'C:\Temp\QueryMonitor.xel');
ALTER EVENT SESSION TrackQueries ON SERVER STATE = START;

बक्सों का इस्तेमाल करें:

  • उच्च CPU प्रश्नों की निगरानी करें.
  • गतिरोध या अनुपलब्ध अनुक्रमणिकाओं को कैप्चर करें.
  • न्यूनतम ओवरहेड के साथ उत्पादन में लंबे समय तक चलने वाले कथनों को प्रोफाइल करें।

48) फ़िल्टर्ड इंडेक्स क्या हैं, और उनका उपयोग कब किया जाना चाहिए?

फ़िल्टर किया गया इंडेक्स केवल उन पंक्तियों के उपसमूह को इंडेक्स करता है जो फ़िल्टर शर्त को पूरा करते हैं - जिससे प्रदर्शन में सुधार होता है और भंडारण कम होता है।

उदाहरण:

CREATE INDEX IX_ActiveEmployees
ON Employees (Department)
WHERE Status = 'Active';

लाभ:

  • छोटा सूचकांक आकार.
  • तेज़ रखरखाव.
  • चयनात्मक प्रश्नों के लिए अनुकूलित.

के लिए सबसे अच्छा: विषम डेटा वितरण वाले कॉलम (उदाहरणार्थ, सक्रिय बनाम निष्क्रिय रिकॉर्ड)।


49) आप SQL सर्वर वातावरण के बीच डेटा को सुरक्षित रूप से कैसे स्थानांतरित करते हैं?

सुरक्षित डेटा माइग्रेशन में निम्नलिखित के लिए योजना बनाना शामिल है स्थिरता, डाउनटाइम और रोलबैक.

सर्वोत्तम प्रथाएं:

  1. उपयोग लेन-देन संबंधी प्रतिकृति or परिवर्तन डेटा कैप्चर (सीडीसी) लाइव सिंक के लिए.
  2. बाधाओं और ट्रिगर्स को अस्थायी रूप से अक्षम करें.
  3. उपयोग बीसीपी or लघु उद्योगों थोक डेटा स्थानांतरण के लिए.
  4. पंक्ति गणना और चेकसम को मान्य करें.
  5. हमेशा पोस्ट-माइग्रेशन अखंडता जांच चलाएं (DBCC CHECKDB).

उदाहरण:

bcp Database.dbo.Table out TableData.dat -n -S Server -T

स्टेजिंग में माइग्रेशन स्क्रिप्ट का परीक्षण करना अपरिहार्य है।


50) आप पैरामीटर-संवेदनशील क्वेरी (PSQ) समस्याओं की पहचान और समाधान कैसे करते हैं?

पैरामीटर-संवेदनशील क्वेरीज़ पैरामीटर मानों के आधार पर असंगत रूप से कार्य करती हैं - जो वास्तविक दुनिया में अक्सर आने वाली चुनौती है।

पहचान: उपयोग क्वेरी स्टोर or sys.dm_exec_query_stats एक प्रश्न के लिए कई योजनाओं की पहचान करना।

फिक्स रणनीतियाँ:

  1. उपयोग विकल्प (पुनःसंकलन) प्रत्येक निष्पादन के लिए.
  2. उपयोग अज्ञात के लिए अनुकूलित करें एक सामान्य योजना बनाने के लिए.
  3. बनाएं योजना मार्गदर्शिकाएँ इष्टतम निष्पादन पथ लागू करने के लिए.
  4. उपयोग क्वेरी संकेत केवल यदि आवश्यक हो.

पैरामीटर-संवेदनशील मुद्दों के लिए योजना स्थिरता और प्रदर्शन पूर्वानुमान के बीच संतुलन की आवश्यकता होती है।

🔍 वास्तविक दुनिया के परिदृश्यों और रणनीतिक प्रतिक्रियाओं के साथ शीर्ष T-SQL साक्षात्कार प्रश्न

1) टी-एसक्यूएल में इनर जॉइन और लेफ्ट जॉइन के बीच क्या अंतर है?

उम्मीदवार से अपेक्षित: साक्षात्कारकर्ता जॉइन ऑपरेशन्स के बारे में आपकी समझ का आकलन करना चाहता है और यह भी कि SQL क्वेरीज़ में डेटा संबंधों का प्रबंधन कैसे किया जाता है।

उदाहरण उत्तर: An INNER JOIN केवल उन पंक्तियों को लौटाता है जिनके मान दोनों तालिकाओं में मेल खाते हैं, जबकि LEFT JOIN बाईं तालिका की सभी पंक्तियों के साथ-साथ दाईं तालिका की मिलान वाली पंक्तियाँ भी लौटाता है। यदि कोई मिलान नहीं होता है, तो दाईं तालिका के स्तंभों के लिए NULL मान लौटाए जाते हैं। डेटाबेस में आंशिक या वैकल्पिक संबंधों के साथ काम करते समय यह अंतर महत्वपूर्ण होता है।


2) आप टी-एसक्यूएल में किसी तालिका से डुप्लिकेट रिकॉर्ड की पहचान कैसे करेंगे और उन्हें कैसे हटाएंगे?

उम्मीदवार से अपेक्षित: साक्षात्कारकर्ता डेटा गुणवत्ता संबंधी मुद्दों को संभालने के लिए विंडो फ़ंक्शन और CTE का उपयोग करने की आपकी क्षमता देखना चाहता है।

उदाहरण उत्तर: मैं कॉमन टेबल एक्सप्रेशन (CTE) का उपयोग करूंगा ROW_NUMBER() डुप्लिकेट की पहचान करने के लिए फ़ंक्शन। उदाहरण के लिए:

WITH CTE AS (
  SELECT *, ROW_NUMBER() OVER (PARTITION BY column1, column2 ORDER BY id) AS rn
  FROM MyTable
)
DELETE FROM CTE WHERE rn > 1;

यह दृष्टिकोण प्रत्येक समूह के लिए एक अद्वितीय रिकॉर्ड बनाए रखते हुए डुप्लिकेट को हटाने में मदद करता है।


3) क्या आप बता सकते हैं कि सीटीई (कॉमन टेबल एक्सप्रेशन) क्या है और आप इसका प्रयोग कब करेंगे?

उम्मीदवार से अपेक्षित: साक्षात्कारकर्ता क्वेरी संरचना और अस्थायी परिणाम सेट के बारे में आपके ज्ञान की जांच कर रहा है।

उदाहरण उत्तर: CTE एक अस्थायी परिणाम सेट है जो एकल क्वेरी के निष्पादन दायरे में परिभाषित होता है। यह जटिल जॉइन और सबक्वेरीज़ को सरल बनाने, पठनीयता में सुधार करने और पुनरावर्ती क्वेरीज़ को संभव बनाने के लिए उपयोगी है। अपनी पिछली भूमिका में, मैंने बहु-चरणीय एकत्रीकरण तर्क को अधिक रखरखाव योग्य घटकों में विभाजित करने के लिए अक्सर CTE का उपयोग किया।


4) आप टी-एसक्यूएल क्वेरीज़ में प्रदर्शन ट्यूनिंग को कैसे संभालते हैं?

उम्मीदवार से अपेक्षित: साक्षात्कारकर्ता क्वेरी अनुकूलन और प्रदर्शन समस्या निवारण के संबंध में आपके अनुभव का मूल्यांकन करना चाहता है।

उदाहरण उत्तर: मैं टेबल स्कैन या महंगे जॉइन जैसे धीमे ऑपरेशनों की पहचान करने के लिए निष्पादन योजना की जाँच करके शुरुआत करता हूँ। फिर मैं गायब इंडेक्स, अनावश्यक सबक्वेरीज़ या अक्षम जॉइन की जाँच करता हूँ। मैं आँकड़ों का विश्लेषण भी करता हूँ और प्रदर्शन में सुधार के लिए इंडेक्सिंग रणनीतियों, जैसे कवरिंग इंडेक्स या फ़िल्टर किए गए इंडेक्स, का उपयोग करता हूँ। अंत में, मैं क्वेरी लॉजिक की समीक्षा करता हूँ ताकि यह सुनिश्चित हो सके कि यह पंक्ति-दर-पंक्ति प्रोसेसिंग के बजाय सेट-आधारित ऑपरेशनों का लाभ उठाता है।


5) उस समय का वर्णन करें जब आपको प्रोडक्शन में धीमी गति से चलने वाली क्वेरी को डीबग करना पड़ा हो। आपने क्या कदम उठाए?

उम्मीदवार से अपेक्षित: यह व्यवहारिक प्रश्न आपके वास्तविक दुनिया की समस्या-समाधान और संचार कौशल का मूल्यांकन करता है।

उदाहरण उत्तर: पिछली स्थिति में, एक रिपोर्ट क्वेरी को निष्पादित होने में 20 मिनट से ज़्यादा समय लग रहा था। मैंने निष्पादन योजना का विश्लेषण किया और पाया कि एक जॉइन में एक विदेशी कुंजी कॉलम पर इंडेक्स गायब था। इंडेक्स बनाने और आँकड़े अपडेट करने के बाद, क्वेरी रनटाइम 30 सेकंड से कम हो गया। मैंने इस सुधार का दस्तावेज़ीकरण भी किया और भविष्य में ऐसी समस्याओं से बचने के लिए इसे टीम के साथ साझा किया।


6) अस्थायी तालिकाएँ और तालिका चर क्या हैं, और वे कैसे भिन्न हैं?

उम्मीदवार से अपेक्षित: साक्षात्कारकर्ता टी-एसक्यूएल में अस्थायी डेटा भंडारण विकल्पों के बारे में आपकी समझ का परीक्षण कर रहा है।

उदाहरण उत्तर: अस्थायी तालिकाएँ (#TempTable) tempdb डेटाबेस में बनाए जाते हैं और इंडेक्स, कंस्ट्रेंट और आँकड़ों का समर्थन करते हैं। टेबल वैरिएबल (@TableVar) मेमोरी में संग्रहीत होते हैं और सीमित सांख्यिकी समर्थन प्रदान करते हैं, जिससे वे छोटे डेटासेट के लिए उपयुक्त होते हैं। अस्थायी तालिकाएँ बड़े या जटिल डेटासेट के लिए बेहतर होती हैं, जबकि तालिका चर छोटे, अल्पकालिक डेटा के लिए अधिक कुशल होते हैं।


7) आप टी-एसक्यूएल में त्रुटि प्रबंधन और लेनदेन को कैसे संभालेंगे?

उम्मीदवार से अपेक्षित: साक्षात्कारकर्ता लेन-देन संबंधी अखंडता और अपवाद प्रबंधन के बारे में आपकी समझ की जांच कर रहा है।

उदाहरण उत्तर: मैं उपयोग करता हूं BEGIN TRANSACTION, COMMIT, तथा ROLLBACK डेटा की एकरूपता सुनिश्चित करने के लिए कथन। मैं इसमें यह भी शामिल करता हूँ TRY...CATCH त्रुटियों को सुचारू रूप से संभालने के लिए ब्लॉक। उदाहरण के लिए:

BEGIN TRY
  BEGIN TRANSACTION
    -- SQL operations here
  COMMIT TRANSACTION
END TRY
BEGIN CATCH
  ROLLBACK TRANSACTION
  PRINT ERROR_MESSAGE()
END CATCH

यह दृष्टिकोण त्रुटियाँ होने पर आंशिक डेटा अद्यतन को रोकता है।


8) आप टी-एसक्यूएल में विंडो फ़ंक्शन का उपयोग कैसे करते हैं, और क्या आप इसका कोई उदाहरण दे सकते हैं?

उम्मीदवार से अपेक्षित: साक्षात्कारकर्ता उन्नत विश्लेषणात्मक प्रश्नों के माध्यम से आपकी दक्षता का आकलन करना चाहता है।

उदाहरण उत्तर: विंडो फ़ंक्शन, डेटा को छोटा किए बिना, वर्तमान पंक्ति से संबंधित पंक्तियों के सेट में गणना करने की अनुमति देते हैं। उदाहरण के लिए:

SELECT 
  EmployeeID, 
  Salary,
  RANK() OVER (ORDER BY Salary DESC) AS SalaryRank
FROM Employees;

यह वेतन के आधार पर कर्मचारियों को रैंकिंग संख्या प्रदान करता है, जिससे प्रदर्शन प्रवृत्तियों का विश्लेषण करना आसान हो जाता है।


9) मुझे उस जटिल टी-एसक्यूएल परियोजना के बारे में बताइए जिस पर आपने काम किया था और आपने उसकी चुनौतियों का सामना कैसे किया।

उम्मीदवार से अपेक्षित: साक्षात्कारकर्ता अनुभव, समस्या समाधान और टीम वर्क में गहराई की तलाश में है।

उदाहरण उत्तर: अपनी पिछली भूमिका में, मैंने T-SQL स्टोरेज प्रोसीजर का उपयोग करके एक डेटा वेयरहाउस ETL पाइपलाइन बनाई। चुनौती बड़ी मात्रा में डेटा को कुशलतापूर्वक प्रबंधित करने की थी। मैंने विभाजित तालिकाओं, वृद्धिशील लोड और बैच प्रोसेसिंग के साथ क्वेरीज़ को अनुकूलित किया। मैंने स्कीमा डिज़ाइनों की एकरूपता सुनिश्चित करने और रिपोर्टिंग गति में 40% से अधिक सुधार करने के लिए BI टीम के साथ समन्वय भी किया।


10) आप उस स्थिति को कैसे संभालेंगे जहां आपके द्वारा लिखी गई संग्रहीत प्रक्रिया के कारण उत्पादन में गतिरोध उत्पन्न हो गया हो?

उम्मीदवार से अपेक्षित: साक्षात्कारकर्ता आपके संकट प्रबंधन और तकनीकी जागरूकता का परीक्षण कर रहा है।

उदाहरण उत्तर: मैं सबसे पहले SQL सर्वर का उपयोग करके गतिरोध की पहचान करूंगा sys.dm_tran_locks और डेडलॉक ग्राफ़। फिर, मैं संसाधन पहुँच के क्रम का विश्लेषण करता और एक सुसंगत क्रम में लॉक प्राप्त करने के लिए प्रक्रिया को पुनर्संरचना करता। अपनी पिछली नौकरी में, मैंने प्रभावित लेनदेन के लिए पुनः प्रयास तर्क भी लागू किया और समान पैटर्न का जल्द पता लगाने के लिए नियमित निगरानी निर्धारित की।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: