I den æra, hvor enorme mængder data bliver genereret på daglig basis, spiller data en afgørende rolle i beslutningstagningen for forretningsdrift. Så for at håndtere data har vi brug for databaser, og dette giver os behovet for at forstå databasestyringssystemer. Med forskellige databasestyringssystemer er MS SQL Server et af de mest populære relationelle databasestyringssystemer. Denne type DBMS bruger en struktur, der giver brugerne mulighed for at identificere og få adgang til data i relation til et andet stykke data i databasen. Så at kende MS SQL Server åbner dørene for dig til at blive en databaseadministrator. Jeg tror, at du allerede er klar over disse fakta, og det har fået dig til at lande på denne artikel om MS SQL Server-interviewspørgsmål.
I denne artikel om Microsoft SQL Server-interviewspørgsmål vil jeg diskutere de vigtigste spørgsmål relateret til MS SQL Server, der stilles i dine interviews. Disse spørgsmål er indsamlet efter at have rådført sig med folk med fremragende færdigheder på dette område.
Lad os komme i gang!
Q1. Nævn forskellene mellem SQL Server og MySQL.
SQL-server | MySQL |
Udviklet af Microsoft | Udviklet af Oracle |
Licenseret software | Open source-software |
Understøtter C#, Java C++, PHP, Visual Basic, Perl, Python, Ruby osv. | Understøtter PHP, Perl, Python, Ruby osv. |
Tillader ikke nogen form for databasefilmanipulation under kørsel | Tillader manipulation af databasefiler under kørsel. |
Tillader annullering af forespørgsler midtvejs i processen | Tillader ikke annullering af forespørgsler midtvejs i processen. |
Mens der sikkerhedskopieres dataene, blokerer den ikke databasen | Mens der sikkerhedskopieres dataene, blokerer det databasen |
Tager en stor mængde operationel lagerplads. | Tager mindre operativ lagerplads. |
Tilgængelig i Express- og Custom-tilstand. | Tilgængelig i MySQL Community Edition og MySQL Enterprise Edition |
Q2. Hvad forstår du ved SQL Server Agent?
SQL Server Agent er en Windows-tjeneste, som bruges til at planlægge og udføre job. Her indeholder hvert job et eller flere trin, og hvert trin indeholder en opgave. Så serveragenten bruger SQL Server til at gemme joboplysninger og køre et job efter en tidsplan.
Hovedkomponenterne i SQL Server Agent er job, tidsplaner, operatører og advarsler.
Eksempel:
Hvis en virksomhed ønsker at tage en backup af virksomhedens servere kl. 21.00 hver fredag, så kan du meget vel automatisere denne opgave for at lade tidsplanen ske af sig selv . I et scenarie støder sikkerhedskopien på en fejl, SQL Server Agenten registrerer hændelsen og underretter det tilsvarende team.
Q3. Nævn de forskellige godkendelsestilstande i SQL Server.
Før jeg fortæller dig de forskellige godkendelsestilstande i SQL Server, så lad mig fortælle dig, at godkendelsestilstanden bruges til at godkende en bruger i SQL Server. Godkendelsestilstanden vælges under opsætning af databasemotoren. Så hvis du vil vide, hvordan du opsætter Microsoft SQL Server, kan du henvise til min artikel.
De forskellige godkendelsestilstande, der tilbydes af SQL SERVER, er som følger:
- Windows-godkendelsestilstand: Denne tilstand bruges til at forbinde serveren via en Windows-konto. Her tager serveren computerens brugernavn og adgangskode til autentificeringsformål. SQL-servergodkendelsestilstanden er også deaktiveret i denne tilstand.
- Blandet tilstand: Den blandede tilstand bruges til at oprette forbindelse til en forekomst af SQL Server ved hjælp af enten SQL Server-godkendelse eller Windows-godkendelse. I denne tilstand indstilles et brugernavn og en adgangskode af brugeren til databasen.
Q4. Nævn forskellene mellem lokale og globale midlertidige tabeller.
Lokal midlertidig tabel | Global midlertidig tabel |
Disse tabeller eksisterer kun under forbindelsens varighed eller varigheden af den erklæring. | Disse tabeller eksisterer permanent i databasen, og kun rækkerne bliver slettet, når forbindelsen lukkes. |
Syntaks: OPRET TABEL # | Syntaks: OPRET TABEL ## |
Sp5. Hvordan kan du tjekke versionen af SQL Server?
For at kontrollere versionen af SQL Server kan du bruge følgende kommando:
SELECT @@version
@@VERSION giver output som én nvarchar-streng.
Spørgsmål 6. Hvad er enkeltbrugertilstand, og hvad er de trin, du skal følge for at starte SQL Server i enkeltbrugertilstand?
Det kan ofte ske, at du ønsker at starte en forekomst af SQL Server i enkeltbrugertilstand. Du kan gøre dette, enten når du vil gendanne data fra andre databasesystemer eller måske vil ændre serverkonfigurationer.
Når du starter SQL Server i enkeltbrugertilstand, bliver ethvert medlem af computerens lokale administratorgruppe forbundet til forekomsten af SQL Server som sysadmin.
Følgende hændelser opstår ved start af databasen i enkeltbrugertilstand:
- En enkelt bruger opretter forbindelse til serveren.
- KJEKKEPUNKT processen udføres ikke, da den udføres som standard ved opstart.
Bemærk også, at du skal stoppe SQL Server Agent-tjenesten, før du opretter forbindelse til en forekomst af SQL Server i enkeltbrugertilstand.
- For at starte SQL Server i enkeltbrugertilstand skal du bruge kommandoen:
sqlcmd –m
- For at oprette forbindelse via Query Editor i Management Studio skal du bruge:
-m"Microsoft SQL Server Management Studio - Query".
Spørgsmål 7. Hvad er SQL Server Profiler?
Microsoft SQL Server Profiler er en grænseflade, der bruges til at oprette og administrere spor. Den analyserer og afspiller også sporingsresultaterne. Her gemmes hændelser i en sporingsfil, som senere analyseres eller bruges til at afspille en specifik række trin, mens et problem fejlsøges.
Du kan bruge SQL Server Profiler til aktiviteter som:
- Find årsagen til problemet
- Overvågning af SQL Servers ydeevne for at håndtere arbejdsbelastningerne.
- Diagnosticering af de langsomme forespørgsler
- Optagelse af en række SQL-sætninger, der forårsager problemer, for yderligere at replikere problemet på testserveren, mens problemet fejlfindes.
- Det hjælper også med at korrelere ydeevnetællere til nemt at fejlfinde problemer.
Q8. Hvad er TCP/IP-porten, som SQL Server kører på?
TCP/IP-porten, som SQL Server kører på, er 1433.
Sp 9. Hvad er underforespørgsler i SQL server? Forklar dens egenskaber.
En underforespørgsel er en forespørgsel inde i en anden forespørgsel, hvor en forespørgsel er defineret til at hente data eller information tilbage fra databasen. I en underforespørgsel kaldes den ydre forespørgsel som hovedforespørgsel, mens den indre forespørgsel kaldes subforespørgsel. Underforespørgsler udføres altid først, og resultatet af underforespørgslen sendes videre til hovedforespørgslen. Det kan indlejres i en SELECT, UPDATE eller en hvilken som helst anden forespørgsel. En underforespørgsel kan også bruge enhver sammenligningsoperator såsom>, Egenskaberne for underforespørgsler er som følger: I klyngeinstallation bruger SQL Serveren DLL-tilgængelig forbindelse og blokerer dermed alle andre forbindelser til serveren. I denne tilstand, hvis du forsøger at bringe SQL Server Agent-ressourcer online, kan det mislykkes over SQL-ressourcer til en anden node, da den kunne konfigureres til en gruppe. Så for at starte en enkelt brugertilstand i klynget installation, kan du følge nedenstående trin: Replikering i Microsoft SQL Server er en proces til at synkronisere data på tværs af flere servere. Dette gøres generelt af et replikasæt, og disse sæt giver flere kopier af data med redundans og høj tilgængelighed på forskellige servere. Ikke kun dette, men replikering giver en mekanisme til at genoprette efter fejl. Det fjerner også afhængigheder fra en enkelt server for at beskytte tab af data fra en enkelt server. Følgende er tre typer replikeringer i SQL Server: Giver enkel og nem syntaks. Består af kompleks og forholdsvis mere effektiv syntaks. Bruger transact SQL eller T-SQL. Bruger PL/SQL Understøtter ikke forespørgselsoptimering. Bruger stjerneforespørgselsoptimering. Tilbageføringer er ikke tilladt i transaktionsprocessen. Tilbageføring er tilladt under transaktionsprocessen. Tillader trinvis , delvis og fuld sikkerhedskopiering Tillader trinvis , fuld, filniveau og differentiel sikkerhedskopiering. Understøtter ikke klyngedannelse. Tilbyder understøttelse af klyngekonfiguration. Udsagn som INSERT, UPDATE, DELETE udføres serielt. Udsagn som INSERT, UPDATE, DELETE, MERGE udføres parallelt. Opgaven er planlagt via SQL Server-agenten Job planlægges via Oracle scheduler eller OEM Microsoft SQL Server bruger et låsehierarki, når dataene læses eller noget ændres i dataene. Hver gang en række læses, erhverver SQL Server en delt lås. På samme måde, så snart vi ændrer en række, får SQL Server en eksklusiv lås. Disse låse er inkompatible med hinanden. Så INTENT-låsene bruges til at angive på et højere niveau, hvilke låse der anvendes i et låsehierarki. Der er hovedsageligt tre slags INTENT-låse:
De trin, du skal følge for at skjule SQL Server-forekomster, er som følger:
Datakvalitetstjenesterne i SQL Server er et vidensdrevet datakvalitetsprodukt. SQL Server Data Quality Services (DQS) gør det muligt for brugeren at opbygge en videnbase og derefter bruge den til at udføre opgaver såsom korrektion, deduplikering, berigelse, standardisering af data. Udover dette leverer DQS også profilering og giver dig mulighed for at udføre datarensning ved hjælp af cloud-baserede datatjenester. DQS består af to komponenter: Magiske tabeller er tabeller, der automatisk oprettes tabeller i SQL Server, der bruges til internt at gemme de indsatte, opdaterede værdier for DML-operationer såsom (SELECT, DELETE, INSERT, UPDATE osv.). Change Data Capture eller mest almindeligt kendt som CDC bruges til at registrere INSERT, UPDATE, DELETE-aktiviteter anvendt på tabellerne. Så, som navnet antyder, bruges Change Data Capture til at fange de data, der er blevet ændret for nylig. De kolonneoplysninger og metadata, der kræves for at anvende ændringerne til målmiljøet, opsamles for de ændrede rækker og gemmes til sidst i ændringstabellerne. Disse ændringstabeller er spejlbilledet af den oprindelige kolonnestruktur. Triggere bruges til at udføre batches af SQL-kode, når INSERT-, DELETE- eller UPDATE-kommandoer udføres mod en tabel. Så dybest set udføres triggere automatisk, når dataene ændres baseret på datamanipulationsoperationerne.
De forskellige typer triggere er som følger: En rekursiv lagret procedure er en problemløsningsmetode, hvorigennem du kan nå frem til løsningen igen og igen. Processen med automatisering af sikkerhedskopiering for at gendanne databaser fra en enkeltstående server til en anden standbyserver er kendt som Log Shipping. Du kan også forstå logforsendelse som en af katastrofegendannelsesløsningerne, da den sørger for, at selvom en server fejler, vil standby-serveren have de samme data som selve serveren.
Fordelene ved Log Shipping er som følger: Disse flag bruges til at ændre serveradfærd eller indstille serverkarakteristika. Få almindelige sporingsflag, der bruges med SQL Server, er som følger Bruges til at returnere en bestemt del af strengen i en given streng Bruges til at returnere en tegnposition i en given specificeret streng Eksempel: SUBSTRING('Edureka',1,4) Output: Edur Eksempel: CHARINDEX('r','Edureka',1) Output: 4 Analysetjenester i Microsoft SQL Server er en analytisk datamaskine, der bruges til forretningsanalyse og beslutningsstøtte. Denne service leverer semantiske modeller i virksomhedsklasse til klientapplikationer og rapporter såsom Power BI, Microsoft Excel og andre visualiseringsværktøjer. Analysetjenesterne er tilgængelige på platforme som f.eks.: Spejling i SQL Server er designet til at opretholde en varm standby-server, der er i overensstemmelse med den primære server med hensyn til en transaktion. Transaktionslogposterne sendes også fra hovedserveren til den sekundære server. Følgende er fordelene ved spejling: SQL Server-baserede markører bruges, når du ønsker at arbejde på en post på et hvilket som helst tidspunkt, i stedet for at tage alle data fra en tabel som en bulk. Dog foretrækkes det ikke at bruge markører, når der er store mængder data, da det påvirker ydeevnen. I et scenarie, hvor det ikke er muligt at undgå markører, så prøv at reducere antallet af poster, der skal behandles ved at bruge en midlertidig tabel, og opbygg derefter til sidst markøren ud fra denne. Det fysiske og logiske design spiller en vigtig rolle i udførelsen af SQL Server-baserede applikationer. Vi er nødt til at sikre, at korrekte data er fanget i korrekte tabeller, dataelementerne har korrekte relationer mellem dem, og dataredundans reduceres. Jeg vil også foreslå, at mens du designer en database, så sørg for, at det er en iterativ proces for at nå alle de nødvendige systemmål og er under konstant observation. Når først databasedesignet er indstillet, er det meget svært at ændre designet efter behov. Du kan kun tilføje nye relationer og dataelementer. Sp27. Hvad forstår du ved brugerdefineret funktion i SQL Serveren og forklarer trinene til at oprette og udføre en brugerdefineret funktion i SQL Serveren? En brugerdefineret funktion er en funktion skrevet efter brugerens behov ved at implementere logik. I denne slags funktioner er brugeren ikke begrænset til foruddefinerede funktioner og forenkler den komplekse kode for foruddefinerede funktioner ved at skrive simpel kode. Denne funktion returnerer en skalarværdi eller en tabel. For at oprette en brugerdefineret funktion, se følgende eksempel:
For at udføre den ovenfor oprettede funktion, se følgende kommando: En udvikler skal kontrollere typen af gemt information, datamængde og data der vil blive tilgået. I et scenarie, hvor du opgraderer et eksisterende system, bør du analysere de nuværende data, eksisterende datamængder opstår og kontrollere den metode, hvorigennem data er tilgået, for at hjælpe dig forstå problemområderne for design. I et scenarie, hvor du bruger et nyt system, skal du opbevare informationen om, hvilke data der vil blive fanget, og hvad der er databestanddelene og forholdet mellem dataelementerne. Et forhold i DBMS er scenariet, hvor to entiteter er relateret til hinanden. I et sådant scenarie refererer tabellen bestående af fremmednøgle til den for en primærnøgle i den anden tabel. De forskellige typer relationer i DBMS er som følger:
En JOIN-klausul bruges til at kombinere rækker fra to eller flere tabeller baseret på en relateret kolonne mellem dem. Det bruges til at flette to tabeller eller hente data derfra. Der er 4 joins i SQL, nemlig: Kommandoen DBCC CHECKDB bruges til at kontrollere den fysiske og logiske integritet af alle objekterne i den nævnte database. For at gøre det udfører den følgende handlinger: Så du skal bare udføre DBCC CHECKDB-kommandoen, og automatisk bliver kommandoerne DBCC CHECKALLOC, DBCC CHECKTABLE eller DBCC CHECKCATALOG eksekveret. Bemærk også, at DBCC er understøttet på databaser, der indeholder hukommelsesoptimerede tabeller, men ikke giver mulighed for reparation. Dette indebærer, at du regelmæssigt skal sikkerhedskopiere databaser og teste disse sikkerhedskopier. CHECK-begrænsningen i SQL Server bruges til at begrænse værdierne eller typen af data, der er gemt i en kolonne. Når du har anvendt CHECK-begrænsningen på en enkelt kolonne, kan du gå fremad og anvende specifikke værdier for den pågældende kolonne. Denne funktion bruges til at returnere det første ikke-nul udtryk i argumenter. COALESCE-kommandoen bruges til at returnere en ikke-nullværdi fra mere end en enkelt kolonne i argumenter. FLOOR-funktionen bruges til at runde en ikke-heltalsværdi op til den forrige mindste heltalsværdi. Denne funktion returnerer en unik værdi efter afrunding af cifrene.
Syntaks:
Eksempel: For at kontrollere låse i databasen kan du bruge den indbyggede lagrede procedure sp_lock.
Brug følgende kommando for at få vist alle de låse, der i øjeblikket opbevares i en forekomst af databasemotoren:
Følgende er tre måder at tælle antallet af poster i tabellen på:
Denne funktion bruges til at bestemme, om det nævnte tal er nul, positivt og negativt. Så det vil enten returnere 0, +1, -1.
For at finde den første ugedag i måneden kan du skrive en forespørgsel som følger: For at omdøbe en database skal du bruge kommandoen sp_renamedb på følgende måde:
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.
Bemærk: 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-certificeringsuddannelse 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. Har du et spørgsmål til os? 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.
Sp10. Hvordan starter du enkeltbrugertilstand i clustered installationer?
net start MSSQLSERVER /m.
SQLCMD -E -S<servername>.
Sp11. Hvad forstår du ved replikering i SQL Server? Nævn de forskellige typer replikering i SQL Server.
Sp12. Hvad er forskellene mellem MS SQL Server og Oracle?
MS SQL Server Oracle Sp13. Hvad forstår du ved INTENT-låse?
Sp14. Hvad er de trin, du skal følge for at skjule SQL Server-forekomster?
Sp15. Hvad forstår du ved datakvalitetstjenesterne i SQL Server?
Sp16. Forklar magiske tabeller i SQL-server
Sp17. Hvad forstår du ved Skift datafangst ?
Sp18. Hvad forstår du ved udløsere og nævner de forskellige typer af det?
Sp19. Hvad forstår du ved rekursiv lagret procedure?
Q20. Forklar logforsendelse og nævn dens fordele.
Q21. Hvad er sporflag og nævne nogle få almindelige sporingsflag, der bruges med SQL Server?
Q22. Nævn forskellene mellem SUBSTR og CHARINDEX i SQL Server.
SUBSTR CHARINDEX Q23. Hvad forstår du ved Analysis Services i SQL Server?
Q24. Hvad forstår du ved Mirroring og nævner fordelene ved Mirroring?
Sp25. Hvornår mener du, at en udvikler skal bruge SQL Server-baserede markører?
Sp26. Hvilken rolle spiller databasedesign en rolle i ydelsen af en SQL Server-baseret applikation?
CREATE FUNCTION samplefunc(@num INT)
RETURNS TABLE
AS
RETURN SELECT * FROM customers WHERE CustId=@num
SELECT * FROM samplefunc(10)
Sp28. Hvordan kan du sikre, at databasen og den SQL Server-baserede applikation fungerer godt?
Sp29. Hvad er relationer og nævn forskellige typer relationer i DBMS
Sp30. Hvad er joinforbindelser i SQL, og hvad er de forskellige typer joinforbindelser?
Q31. Hvad bruges kommandoen DBCC CHECKDB til?
Q32. Hvad forstår du ved CHECK-begrænsning i SQL Server?
Eksempel:
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')
);
Q33. Hvad gør forstår du ved COALESCE i SQL Server?
Eksempel:
SELECT COALESCE(CustID, CustName, Amount) from Customers;
Q34. Forklar brugen af FLOOR-funktionen i SQL Server.
FLOOR(expression)
FLOOR(7.3)
Sp35. Hvad er kommandoen, der bruges til at kontrollere låse i Microsoft SQL Server?
Syntaks
sp_lock [ [ @spid1 = ] 'session ID1' ] [ , [@spid2 = ] 'session ID2' ]
[ ; ]
Eksempel:
USE SampleDB;
GO
EXEC sp_lock;
GO
Q36. Nævn de 3 måder at få en optælling af antallet af poster i en tabel på.
SELECT * FROM TableName;
SELECT COUNT(*) FROM TableName;
SELECT rows FROM indexes WHERE id = OBJECT_ID(TableName) AND indexid< 2;
Sp37. Hvad er brugen af SIGN-funktionen?
Syntaks:
SIGN(number)
Eksempel:
SIGN (0) returns 0
SIGN (21) returns 1
SIGN (-21) returns -1
Sp38. Skriv en SQL-forespørgsel for at finde den første hverdag i måneden?
SELECT DATENAME(dw, DATEADD(dd, – DATEPART(dd, GETDATE()) + 1, GETDATE())) AS FirstDay;
Q39. Nævn den kommando, der blev brugt til at omdøbe databasen.
sp_renamedb 'OldDatabaseName', 'NewDatabaseName';
Q40. Skriv en forespørgsel for at finde det femte højeste beløb, der er betalt fra kundetabellen.
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?
Syntaks:
DELETE TableName
Eksempel:
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?