V době, kdy se denně generuje obrovské množství dat, hrají data klíčovou roli při rozhodování o obchodních operacích. Ke zpracování dat tedy potřebujeme databáze a to nám dává potřebu porozumět systémům správy databází. S různými systémy pro správu databází je MS SQL Server jedním z nejpopulárnějších systémů pro správu relačních databází. Tento typ DBMS používá strukturu, která uživatelům umožňuje identifikovat data a přistupovat k nim ve vztahu na jiný údaj v databázi. Takže znalost MS SQL Server vám otevírá dveře, abyste se stali správcem databáze. Věřím, že jste si těchto skutečností již vědomi, a díky tomu jste se dostali k tomuto článku s otázkami k rozhovoru pro MS SQL Server.
V tomto článku o otázkách týkajících se rozhovorů s Microsoft SQL Server se budu zabývat hlavními otázkami souvisejícími s MS SQL Serverem, které jste položili ve vašich rozhovorech. Tyto otázky jsou shromažďovány po konzultaci s lidmi s vynikajícími dovednostmi v této oblasti.
Pojďme začít!
Q1. Zmiňte rozdíly mezi SQL Serverem a MySQL.
SQL Server | MySQL |
Vyvinuto společností Microsoft | Vyvinuto společností Oracle |
Licencovaný software | Open source software |
Podporuje C#, Java C++, PHP, Visual Basic, Perl, Python, Ruby atd | Podporuje PHP, Perl, Python, Ruby atd |
Neumožňuje za běhu žádnou manipulaci s databázovými soubory | Umožňuje manipulaci se soubory databáze za běhu. |
Umožňuje zrušení dotazu uprostřed procesu | Neumožňuje zrušení dotazu uprostřed procesu. |
Při zálohování dat neblokuje databázi | Během zálohování dat blokuje databázi |
Zabírá velké množství provozního úložného prostoru. | Zabere méně místa v operačním úložišti. |
K dispozici v expresním a vlastním režimu. | K dispozici v MySQL Community Edition a MySQL Enterprise Edition |
Q2. Co rozumíte pod pojmem SQL Server Agent?
SQL Server Agent je služba systému Windows, která se používá k plánování a provádění úloh. Zde každá úloha obsahuje jeden nebo více kroků a každý krok obsahuje úkol. Serverový agent tedy používá SQL Server k ukládání informací o úloze a spouštění úlohy podle plánu.
Hlavními součástmi SQL Server Agent jsou úlohy, plány, operátoři a upozornění.
Příklad:
Pokud si podnik přeje provést zálohu firemních serverů každý pátek ve 21:00, můžete tento úkol velmi dobře zautomatizovat, aby se plán uskutečnil sám . Ve scénáři záloha narazí na chybu, SQL Server Agent zaznamená událost a upozorní příslušný tým.
Q3. Uveďte různé režimy ověřování na serveru SQL.
Než vám řeknu různé režimy ověřování na serveru SQL Server, dovolte mi, abych vám řekl, že režim ověřování se používá k ověřování uživatele na serveru SQL. Režim ověřování se vybírá při nastavování databázového stroje. Pokud tedy chcete vědět, jak nastavit Microsoft SQL Server, můžete se podívat na můj článek.
Různé režimy ověřování nabízené SQL SERVER jsou následující:
- Režim ověřování systému Windows: Tento režim se používá k připojení serveru prostřednictvím účtu Windows. Zde server bere uživatelské jméno a heslo počítačů pro účely ověření. V tomto režimu je také zakázán režim ověřování serveru SQL.
- Smíšený režim: Smíšený režim se používá k připojení k instanci serveru SQL Server pomocí ověřování serveru SQL Server nebo ověřování systému Windows. V tomto režimu nastavuje uživatelské jméno a heslo pro databázi uživatel.
Q4. Uveďte rozdíly mezi místními a globálními dočasnými tabulkami.
Místní dočasná tabulka | Globální dočasná tabulka |
Tyto tabulky existují pouze po dobu trvání připojení nebo trvání daného příkazu. | Tyto tabulky trvale existují v databázi a po ukončení připojení se smažou pouze řádky. |
Syntaxe: CREATE TABLE # | Syntaxe: VYTVOŘTE TABULKU ## |
O5. Jak můžete zkontrolovat verzi serveru SQL?
Pro kontrolu verze SQL Serveru můžete použít následující příkaz:
SELECT @@version
@@VERSION poskytuje výstup jako jeden řetězec nvarchar.
O6. Co je režim pro jednoho uživatele a jaké jsou kroky, které byste měli provést, abyste spustili SQL Server v režimu pro jednoho uživatele?
Často se může stát, že budete chtít spustit instanci SQL Serveru v režimu jednoho uživatele. Můžete to udělat, když chcete obnovit data z jiných databázových systémů nebo můžete chtít změnit konfiguraci serveru.
Když spustíte SQL Server v režimu pro jednoho uživatele, každý člen místní skupiny Administrators počítače se připojí k instanci SQL Serveru jako správce systému.
Při spuštění databáze v režimu jednoho uživatele dojde k následujícím událostem:
- K serveru se připojí jeden uživatel.
- CHECKPOINT proces se nespustí, protože se standardně spouští při spuštění.
Mějte také na paměti, že před připojením k instanci serveru SQL Server v režimu jednoho uživatele musíte zastavit službu SQL Server Agent.
- Chcete-li spustit SQL Server v režimu pro jednoho uživatele, použijte příkaz:
sqlcmd –m
- Pro připojení pomocí Editoru dotazů v Management Studio použijte:
-m"Microsoft SQL Server Management Studio - Query".
O7. Co je SQL Server Profiler?
Microsoft SQL Server Profiler je rozhraní používané k vytváření a správě trasování. Rovněž analyzuje a přehraje výsledky trasování. Zde se události ukládají do trasovacího souboru, který je později analyzován nebo použit k přehrání konkrétní série kroků při ladění problému.
SQL Server Profiler můžete použít pro činnosti, jako jsou:
- Nalezení hlavní příčiny problému
- Monitorování výkonu SQL Serveru, aby bylo možné zvládnout pracovní zátěž.
- Diagnostika pomalých dotazů
- Zachycení řady příkazů SQL způsobujících problém za účelem další replikace problému na testovacím serveru a zároveň ladění problému.
- Pomáhá také při korelaci čítačů výkonu pro snadné ladění problémů.
O8. Jaký je port TCP/IP, na kterém běží SQL Server?
Port TCP/IP, na kterém běží SQL Server, je 1433.
O9. Co jsou poddotazy na serveru SQL? Vysvětlete jeho vlastnosti.
Poddotaz je dotaz uvnitř jiného dotazu, kde je definován dotaz pro načtení dat nebo informací zpět z databáze. V poddotazu se vnější dotaz nazývá hlavní dotaz, zatímco vnitřní dotaz se nazývá poddotaz. Poddotazy jsou vždy provedeny jako první a výsledek poddotazu je předán hlavnímu dotazu. Může být vnořen do SELECT, UPDATE nebo jakéhokoli jiného dotazu. Poddotaz může také používat libovolné operátory porovnání, jako je>, Vlastnosti dílčích dotazů jsou následující: V clusterové instalaci používá SQL Server dostupné připojení DLL, a tak blokuje všechna další připojení k serveru. Pokud se v tomto stavu pokusíte převést prostředky SQL Server Agent do režimu online, může dojít k selhání přes prostředky SQL do jiného uzlu, protože by mohl být nakonfigurován na skupinu. Chcete-li tedy spustit jeden uživatelský režim v clusterové instalaci, můžete postupovat podle následujících kroků: Replikace na serveru Microsoft SQL Server je proces synchronizace dat mezi více servery. To se obvykle provádí pomocí sady replik a tyto sady poskytují více kopií dat s redundancí a vysokou dostupností na různých serverech. Nejen to, ale replikace poskytuje mechanismus pro zotavení ze selhání. Odstraňuje také závislosti z jednoho serveru a chrání tak před ztrátou dat z jednoho serveru. Následují tři typy replikací na serveru SQL: Poskytuje jednoduchou a snadnou syntaxi. Skládá se ze složité a poměrně efektivnější syntaxe. Používá transact SQL nebo T-SQL. Používá PL/SQL Nepodporuje optimalizaci dotazů. Používá optimalizaci dotazů s hvězdičkou. Vrácení změn není v procesu transakce povoleno. Během procesu transakce jsou povolena vrácení změn. Umožňuje přírůstkové, částečné a úplné zálohy Umožňuje přírůstkové, úplné, souborové a rozdílové zálohy. Nepodporuje shlukování. Nabízí podporu pro clusterovou konfiguraci. Příkazy jako INSERT, UPDATE, DELETE jsou prováděny sériově. Příkazy jako INSERT, UPDATE, DELETE, MERGE se provádějí paralelně. Úlohy jsou naplánovány prostřednictvím SQL Server Agent Úlohy jsou naplánovány prostřednictvím plánovače Oracle nebo OEM Microsoft SQL Server používá hierarchii zámků vždy, když jsou data čtena nebo je v nich něco změněno. Kdykoli je přečten řádek, SQL Server získá sdílený zámek. Podobně, jakmile změníme řádek, SQL Server získá výhradní zámek. Tyto zámky jsou vzájemně nekompatibilní. Zámky INTENT se tedy používají k označení na vyšší úrovni, které zámky jsou použity v rámci hierarchie zámků. Existují hlavně tři druhy zámků INTENT:
Chcete-li skrýt instance serveru SQL Server, musíte postupovat takto:
Služby kvality dat na serveru SQL Server jsou produktem kvality dat založeným na znalostech. SQL Server Data Quality Services (DQS) umožňují uživateli vybudovat znalostní bázi a následně ji používat k provádění úkolů, jako je oprava, deduplikace, obohacení a standardizace dat. Kromě toho poskytuje DQS také profilování a umožňuje provádět čištění dat pomocí cloudových datových služeb. DQS se skládá ze dvou složek: Magické tabulky jsou tabulky automaticky vytvořené na serveru SQL Server, které se používají k internímu ukládání vložených aktualizovaných hodnot pro operace DML, jako jsou (SELECT, DELETE, INSERT, UPDATE atd.). Change Data Capture nebo nejběžněji známý jako CDC se používá k záznamu aktivit INSERT, UPDATE, DELETE aplikovaných na tabulky. Jak již název napovídá, Change Data Capture se používá k zachycení dat, která byla nedávno změněna. Informace o sloupcích a metadata potřebné k použití změn v cílovém prostředí jsou zachyceny pro upravené řádky a nakonec jsou uloženy v tabulkách změn. Tyto tabulky změn jsou zrcadlovým obrazem původní struktury sloupců. Spouštěče se používají ke spouštění dávek kódu SQL, kdykoli jsou v tabulce provedeny příkazy INSERT, DELETE nebo UPDATE. Spouštěče se tedy v zásadě spouštějí automaticky, kdykoli jsou data upravena na základě operací manipulace s daty.
Různé typy spouštěčů jsou následující: Rekurzivní uložená procedura je metoda řešení problémů, pomocí které můžete znovu a znovu dospět k řešení. Proces automatizace zálohování za účelem obnovy databází z jednoho samostatného serveru na jiný samostatný záložní server se nazývá Odeslání protokolu. Odeslání protokolu můžete také chápat jako jedno z řešení obnovy po havárii, protože zajišťuje, že i když jeden server selže, záložní server bude mít stejná data jako server samotný.
Výhody Log Shipping jsou následující: Tyto příznaky se používají ke změně chování serveru nebo nastavení charakteristik serveru. Několik běžných příznaků trasování používaných se serverem SQL je následujících Používá se k vrácení konkrétní části řetězce v daném řetězci Slouží k vrácení pozice znaku v daném zadaném řetězci Příklad: SUBSTRING(‘Edureka’,1,4) Výstup: Edur Příklad: CHARINDEX(‘r‘,‘Edureka‘,1) Výstup: 4 Analysis Services v Microsoft SQL Server je analytický datový stroj používaný v obchodní analýze a podpoře rozhodování. Tato služba poskytuje sémantické modely podnikové úrovně pro klientské aplikace a sestavy, jako je Power BI, Microsoft Excel a další vizualizační nástroje. Analytické služby jsou dostupné na platformách jako : Zrcadlení v SQL Server je navrženo tak, aby udržovalo server v horkém pohotovostním režimu, který je konzistentní s primárním serverem z hlediska transakce. Záznamy protokolu transakcí jsou také odesílány z hlavního serveru na sekundární server. Výhody zrcadlení jsou uvedeny níže: Kurzory založené na SQL Serveru se používají, když chcete kdykoli pracovat na záznamu, místo abyste hromadně přebírali všechna data z tabulky. Kurzory však nejsou upřednostňovány, pokud jsou k dispozici velké objemy dat, protože to ovlivňuje výkon. Ve scénáři, kde není možné se kurzorům vyhnout, zkuste snížit počet záznamů ke zpracování pomocí dočasné tabulky a nakonec z ní sestavit kurzor. Fyzický a logický design hraje důležitou roli ve výkonu aplikací založených na SQL Server. Musíme zajistit, aby správná data byla zachycena ve správných tabulkách, aby mezi sebou datové položky měly správné vztahy a aby se snížila redundance dat. Také bych navrhoval, že když navrhujete databázi, ujistěte se, že jde o iterativní proces k dosažení všech požadovaných systémových cílů a že je neustále sledován. Jakmile je návrh databáze nastaven, je velmi obtížné změnit návrh podle požadavků. Můžete přidávat pouze nové vztahy a datové položky. O27. Co rozumíte pod pojmem User-Defined Function na SQL Server a vysvětlujete kroky k vytvoření a spuštění uživatelsky definované funkce na SQL Serveru? Uživatelem definovaná funkce je funkce napsaná podle potřeb uživatele implementací logiky. V těchto typech funkcí není uživatel omezen na předdefinované funkce a zjednodušuje složitý kód předdefinované funkce napsáním jednoduchého kódu. Tato funkce vrací skalární hodnotu nebo tabulku. Chcete-li vytvořit uživatelem definovanou funkci, použijte následující příklad:
Chcete-li provést výše vytvořenou funkci, použijte následující příkaz: Vývojář musí zkontrolovat typ uložených informací, objem dat a dat ke kterému bude přístup. Ve scénáři, kdy upgradujete stávající systém, byste měli analyzovat současná data, existující objemy dat a zkontrolovat metodu, jejímž prostřednictvím se k datům přistupuje, což vám pomůže porozumět problematickým oblastem designu. Ve scénáři, kdy používáte nový systém, musíte uchovávat informace o tom, jaká data budou zachycena, jaké jsou složky dat a vztah mezi datové položky. Vztah v DBMS je scénář, ve kterém spolu souvisí dvě entity. V takovém scénáři tabulka sestávající z cizího klíče odkazuje na primární klíč druhé tabulky. Různé typy vztahů v DBMS jsou následující:
Klauzule JOIN se používá ke spojení řádků ze dvou nebo více tabulek na základě souvisejícího sloupce mezi nimi. Slouží ke sloučení dvou tabulek nebo z nich načtení dat. V SQL jsou 4 spojení, jmenovitě: Příkaz DBCC CHECKDB slouží ke kontrole fyzické a logické integrity všech objektů ve zmíněné databázi. K tomu provede následující operace: Stačí tedy provést příkaz DBCC CHECKDB a automaticky se spustí příkazy DBCC CHECKALLOC, DBCC CHECKTABLE nebo DBCC CHECKCATALOG. Uvědomte si také, že DBCC je podporováno v databázích, které obsahují tabulky optimalizované pro paměť, ale neposkytuje možnosti opravy. To znamená, že musíte pravidelně zálohovat databáze a testovat tyto zálohy. Omezení CHECK v SQL Server se používá k omezení hodnot nebo typu dat uložených ve sloupci. Jakmile použijete omezení CHECK na jeden sloupec, můžete pokračovat a použít konkrétní hodnoty pro tento konkrétní sloupec. Tato funkce se používá k vrácení prvního nenulového výrazu v rámci argumentů. Příkaz COALESCE se používá k vrácení nenulové hodnoty z více než jednoho sloupce v argumentech. Funkce FLOOR se používá k zaokrouhlení neceločíselné hodnoty na předchozí nejnižší celočíselnou hodnotu. Tato funkce vrací jedinečnou hodnotu po zaokrouhlení číslic.
Syntaxe:
Příklad: Pro kontrolu zámků v databázi můžete použít vestavěnou uloženou proceduru sp_lock.
Chcete-li zobrazit seznam všech zámků aktuálně držených v instanci Database Engine, použijte následující příkaz:
Následují tři způsoby, jak spočítat počet záznamů v tabulce:
Tato funkce se používá k určení, zda je uvedené číslo nula, kladné a záporné číslo. Takže buď vrátí 0, +1, -1.
Chcete-li najít den prvního týdne v měsíci, můžete napsat dotaz takto: Chcete-li přejmenovat databázi, musíte použít příkaz sp_renamedb následujícím způsobem:
To find the 5th highest amount paid from the customers’ table, you can write a query as below:
To delete a table in SQL Server, use the Delete command. With REPEATABLE_READ and SERIALIZABLE isolation levels, locks are held during the transaction. But, if you consider READ_COMMITTED, then locks are held for isolation level.
Note: Whenever GROUP BY is not used, HAVING behaves like a WHERE clause. Integration services is a platform offered by Microsoft to build enterprise-level data transformation solutions and integration. These services solve complex business problems by loading data warehouses, perform data wrangling, copy or download files, and manage SQL Server objects. Also, integration services can extract and transform data from a wide variety of sources such as relational data sources, XML data files, load the data into more than a single database. So, basically, you can use the integration services to create solutions without coding, code complex tasks, program the extensive integration object model to create packages. The integration services include good set of built-in tasks and transformations, graphical tools used for building packages and also contain the Catalog database to store, run and manage packages.
Hotfixes are single, cumulative software packages applied to live systems. This includes one or more files used to address a problem in a software product. Patches are a programs installed on the machines to rectify the problem occurred in the system and ensured the security of the system. So, basically hotfixes are a kind of patch offered by Microsoft SQL Server to address specific issues. These are few encryption mechanisms in SQL Server to encrypt data in the database:
The READ_COMMITED_SNAPSHOT option and the ALLOW_SNAPSHOT_ISOLATION option must be set to allow the usage of optimistic models.
The common performance issues in SQL Server are as follows: So this brings us to the end of the SQL Server Interview Questions article. I hope this set of SQL Server Interview Questions will help you ace your job interview. All the best for your interview! Check out this MySQL DBA Certification Training by Edureka, a trusted online learning company with a network of more than 250,000 satisfied learners spread across the globe. This course trains you on the core concepts &advanced tools and techniques to manage data and administer the MySQL Database. It includes hands-on learning on concepts like MySQL Workbench, MySQL Server, Data Modeling, MySQL Connector, Database Design, MySQL Command line, MySQL Functions, etc. End of the training you will be able to create and administer your own MySQL Database and manage data. Got a question for us? Please mention it in the comments section of this “SQL Server Interview Questions” article and we will get back to you as soon as possible.
O10. Jak spustíte režim pro jednoho uživatele v clusteru instalací?
net start MSSQLSERVER /m.
SQLCMD -E -S<servername>.
O11. Co rozumíte pod pojmem replikace v SQL Server? Uveďte různé typy replikace v SQL Server.
O12. Jaké jsou rozdíly mezi MS SQL Server a Oracle?
MS SQL Server Oracle O13. Co rozumíte zámkům INTENT?
O14. Jaké jsou kroky, které musíte provést, abyste skryli instance SQL Server?
O15. Co rozumíte pod pojmem služby kvality dat na serveru SQL Server?
O16. Vysvětlete Magic Tables na serveru SQL
O17. Co rozumíte pod pojmem Změnit sběr dat ?
O18. Co rozumíte pod pojmem spouštěče a zmiňujete jeho různé typy?
O19. Co rozumíte pod pojmem rekurzivní uložená procedura?
Q20. Vysvětlete Log Shipping a zmiňte její výhody.
O21. Co jsou příznaky trasování a zmínit několik běžných příznaků trasování používaných se serverem SQL?
O22. Uveďte rozdíly mezi SUBSTR a CHARINDEX v SQL Server.
SUBSTR CHARINDEX O23. Co rozumíte pod pojmem Analysis Services na serveru SQL Server?
O24. Co rozumíte pod pojmem zrcadlení a zmiňujete výhody zrcadlení?
O25. Kdy by podle vás měl vývojář používat kurzory založené na SQL Server?
O26. Jakou roli hraje návrh databáze při výkonu aplikace založené na SQL Server?
CREATE FUNCTION samplefunc(@num INT)
RETURNS TABLE
AS
RETURN SELECT * FROM customers WHERE CustId=@num
SELECT * FROM samplefunc(10)
O28. Jak můžete zajistit, aby databáze a aplikace založené na SQL Serveru fungovaly dobře?
O29. Co jsou vztahy a zmiňujte různé typy vztahů v DBMS
Q30. Co jsou spojení v SQL a jaké jsou různé typy spojení?
O31. K čemu slouží příkaz DBCC CHECKDB?
O32. Co rozumíte pod pojmem CHECK na serveru SQL Server?
Příklad:
CREATE TABLE Customer (
Cust_ID int NOT NULL,
FirstName varchar(255),
Age int,
City varchar(255),
CONSTRAINT CHK_Customer CHECK (Age>20 AND City= 'Hyderabad')
);
O33. Co dělat rozumíte COALESCE v SQL Server?
Příklad:
SELECT COALESCE(CustID, CustName, Amount) from Customers;
O34. Vysvětlete použití funkce FLOOR na serveru SQL.
FLOOR(expression)
FLOOR(7.3)
O35. Jaký příkaz se používá ke kontrole zámků na Microsoft SQL Server?
Syntaxe
sp_lock [ [ @spid1 = ] 'session ID1' ] [ , [@spid2 = ] 'session ID2' ]
[ ; ]
Příklad:
USE SampleDB;
GO
EXEC sp_lock;
GO
O36. Uveďte 3 způsoby, jak získat počet záznamů v tabulce.
SELECT * FROM TableName;
SELECT COUNT(*) FROM TableName;
SELECT rows FROM indexes WHERE id = OBJECT_ID(TableName) AND indexid< 2;
O37. Jaké je použití funkce SIGN?
Syntaxe:
SIGN(number)
Příklad:
SIGN (0) returns 0
SIGN (21) returns 1
SIGN (-21) returns -1
O38. Napište SQL dotaz, abyste našli první den v týdnu?
SELECT DATENAME(dw, DATEADD(dd, – DATEPART(dd, GETDATE()) + 1, GETDATE())) AS FirstDay;
O39. Uveďte příkaz použitý k přejmenování databáze.
sp_renamedb 'OldDatabaseName', 'NewDatabaseName';
Q40. Napište dotaz a najděte 5. nejvyšší zaplacenou částku z tabulky Zákazník.
SELECT TOP 1 amount FROM (SELECT DISTINCT TOP 5 amount FROM customers ORDER BY amount DESC) ORDER BY amount;
Q41. How can we delete a table in SQL Server?
Syntax:
DELETE TableName
Příklad:
DELETE Customers;
Q42. What is the purpose of UPDATE STATISTICS and SCOPE_IDENTITY() function ?
Q43. What do you understand by PHYSICAL_ONLY option in DBCC CHECKDB?
Q44. Can you explain how long are locks retained within the REPEATABLE_READ and SERIALIZABLE isolation levels, during a read operation with row-level locking?
Q45. Mention the differences between HAVING and WHERE clause.
HAVING WHERE Used only with SELECT statement Used in a GROUP BY clause Used with the GROUP BY function in a query Applied to each row before they are a part of the GROUP BY function in a query Q46. What do you understand by integration services in SQL Server?
Q47. What do you understand by Hotfixes and Patches in SQL Server?
Q48. Can you name a few encryption mechanisms in SQL server?
Q49. What are the options which must be set to allow the usage of optimistic models?
Q50. What are the common performance issues in SQL Server?