Nell'era in cui ogni giorno vengono generate enormi quantità di dati, i dati svolgono un ruolo cruciale nel processo decisionale per le operazioni aziendali. Quindi, per gestire i dati abbiamo bisogno di database e questo ci dà la necessità di comprendere i sistemi di gestione dei database. Con vari sistemi di gestione di database, MS SQL Server è uno dei più popolari sistemi di gestione di database relazionali. Questo tipo di DBMS utilizza una struttura che consente agli utenti di identificare e accedere ai dati in relazione a un altro dato nel database. Quindi, conoscere MS SQL Server ti apre le porte per diventare un amministratore di database. Credo che tu sia già a conoscenza di questi fatti e questo ti ha fatto atterrare su questo articolo Domande di intervista su MS SQL Server.
In questo articolo sulle domande di intervista di Microsoft SQL Server, discuterò le principali domande relative a MS SQL Server poste nelle tue interviste. Queste domande vengono raccolte dopo aver consultato persone con competenze eccellenti in questo campo.
Cominciamo!
Q1. Menziona le differenze tra SQL Server e MySQL.
SQL Server | MySQL |
Sviluppato da Microsoft | Sviluppato da Oracle |
Software con licenza | Software open source |
Supporta C#, Java C++, PHP, Visual Basic, Perl, Python, Ruby, ecc | Supporta PHP, Perl, Python, Ruby, ecc |
Non consente alcun tipo di manipolazione del file di database durante l'esecuzione | Consente la manipolazione dei file di database durante l'esecuzione. |
Consente l'annullamento della query a metà del processo | Non consente l'annullamento della query a metà del processo. |
Durante il backup dei dati, non blocca il database | Durante il backup dei dati, blocca il database |
Occupa una grande quantità di spazio di archiviazione operativo. | Richiede meno spazio di archiviazione operativo. |
Disponibile in modalità Express e Personalizzata. | Disponibile in MySQL Community Edition e MySQL Enterprise Edition |
Q2. Cosa intendi per SQL Server Agent?
SQL Server Agent è un servizio Windows utilizzato per pianificare ed eseguire processi. Qui, ogni lavoro contiene uno o più passaggi e ogni passaggio contiene un'attività. Pertanto, Server Agent utilizza SQL Server per archiviare le informazioni sui processi ed eseguire un processo in base a una pianificazione.
I componenti principali di SQL Server Agent sono processi, pianificazioni, operatori e avvisi.
Esempio:
Se un'azienda desidera eseguire un backup dei server aziendali ogni venerdì alle 21:00, puoi benissimo automatizzare questa attività per lasciare che la pianificazione avvenga da sola . In uno scenario, il backup rileva un errore, SQL Server Agent registra l'evento e notifica il team corrispondente.
T3. Menziona le diverse modalità di autenticazione in SQL Server.
Prima di indicarti le diverse modalità di autenticazione in SQL Server, lascia che ti dica che la modalità di autenticazione viene utilizzata per autenticare un utente in SQL Server. La modalità di autenticazione viene selezionata durante la configurazione del motore di database. Quindi, se vuoi sapere come configurare Microsoft SQL Server, puoi fare riferimento al mio articolo.
Le diverse modalità di autenticazione offerte da SQL SERVER sono le seguenti:
- Modalità di autenticazione di Windows: Questa modalità viene utilizzata per connettere il server tramite un account Windows. Qui, il server prende il nome utente e la password dei computer per scopi di autenticazione. Inoltre, la modalità di autenticazione del server SQL è disabilitata in questa modalità.
- Modalità mista: La modalità mista viene usata per connettersi a un'istanza di SQL Server utilizzando l'autenticazione di SQL Server o l'autenticazione di Windows. In questa modalità, l'utente imposta un nome utente e una password per il database.
Q4. Indica le differenze tra le tabelle temporanee locali e globali.
Tabella temporanea locale | Tabella temporanea globale |
Queste tabelle esistono solo per la durata della connessione o per la durata di tale istruzione. | Queste tabelle esistono permanentemente nel database e solo le righe vengono eliminate quando la connessione viene chiusa. |
Sintassi: CREA TABELLA # | Sintassi: CREA TABELLA ## |
Q5. Come puoi verificare la versione di SQL Server?
Per verificare la versione di SQL Server, puoi utilizzare il seguente comando:
SELECT @@version
@@VERSION fornisce l'output come una stringa nvarchar.
Q6. Che cos'è la modalità utente singolo e quali sono i passaggi da seguire per avviare SQL Server in modalità utente singolo?
Può capitare spesso di voler avviare un'istanza di SQL Server in modalità utente singolo. Puoi farlo sia quando desideri recuperare i dati da altri sistemi di database sia quando desideri modificare le configurazioni del server.
Quando si avvia SQL Server in modalità utente singolo, qualsiasi membro del gruppo Administrators locale del computer viene connesso all'istanza di SQL Server come sysadmin.
I seguenti eventi si verificano all'avvio del database in modalità utente singolo:
- Un singolo utente si connette al server.
- Il CHECKPOINT processo non viene eseguito poiché viene eseguito per impostazione predefinita all'avvio.
Si noti inoltre che è necessario arrestare il servizio SQL Server Agent prima di connettersi a un'istanza di SQL Server in modalità utente singolo.
- Per avviare SQL Server in modalità utente singolo, utilizzare il comando:
sqlcmd –m
- Per connettersi tramite l'editor di query in Management Studio, utilizzare:
-m"Microsoft SQL Server Management Studio - Query".
Q7. Che cos'è SQL Server Profiler?
Microsoft SQL Server Profiler è un'interfaccia utilizzata per creare e gestire le tracce. Analizza e riproduce anche i risultati della traccia. Qui, gli eventi vengono salvati in un file di traccia che viene successivamente analizzato o utilizzato per riprodurre una serie specifica di passaggi durante il debug di un problema.
È possibile utilizzare SQL Server Profiler per attività quali:
- Trovare la causa principale del problema
- Monitoraggio delle prestazioni di SQL Server per gestire i carichi di lavoro.
- Diagnostica delle query lente
- Cattura di una serie di istruzioni SQL che causano problemi, per replicare ulteriormente il problema sul server di test, mentre si esegue il debug del problema.
- Aiuta anche a correlare i contatori delle prestazioni per eseguire facilmente il debug dei problemi.
D8. Qual è la porta TCP/IP su cui viene eseguito SQL Server?
La porta TCP/IP su cui viene eseguito SQL Server è 1433.
Q9. Cosa sono le sottoquery in SQL Server? Spiega le sue proprietà.
Una sottoquery è una query all'interno di un'altra query in cui viene definita una query per recuperare dati o informazioni dal database. In una sottoquery, la query esterna viene chiamata come query principale mentre la query interna viene chiamata subquery. Le sottoquery vengono sempre eseguite per prime e il risultato della sottoquery viene passato alla query principale. Può essere nidificato all'interno di una SELECT, UPDATE o qualsiasi altra query. Una sottoquery può anche utilizzare qualsiasi operatore di confronto come>, Le proprietà delle sottoquery sono le seguenti: Nell'installazione in cluster, SQL Server utilizza la connessione disponibile DLL e quindi blocca qualsiasi altra connessione al server. In questo stato, se si tenta di portare in linea le risorse di SQL Server Agent, è possibile che venga eseguito il failover delle risorse SQL su un nodo diverso poiché potrebbe essere configurato in un gruppo. Quindi, per avviare una modalità utente singola nell'installazione in cluster, puoi seguire i passaggi seguenti: La replica in Microsoft SQL Server è un processo per sincronizzare i dati su più server. Questa operazione viene generalmente eseguita da un set di repliche e questi set forniscono più copie di dati con ridondanza e disponibilità elevata su server diversi. Non solo questo, ma la replica fornisce un meccanismo per il ripristino dagli errori. Rimuove anche le dipendenze da un singolo server per proteggere la perdita di dati da un singolo server. Di seguito sono riportati tre tipi di repliche in SQL Server: Fornisce una sintassi semplice e facile. Consiste in una sintassi complessa e relativamente più efficiente. Utilizza transazioni SQL o T-SQL. Utilizza PL/SQL Non supporta l'ottimizzazione delle query. Utilizza l'ottimizzazione delle query a stella. I rollback non sono consentiti nel processo di transazione. I rollback sono consentiti durante il processo di transazione. Consente backup incrementali, parziali e completi Consente backup incrementali, completi, a livello di file e differenziali. Non supporta il clustering. Offre supporto per la configurazione in cluster. Le istruzioni come INSERT, UPDATE, DELETE vengono eseguite in serie. Le istruzioni come INSERT, UPDATE, DELETE, MERGE vengono eseguite parallelamente. I lavori sono pianificati tramite SQL Server Agent I lavori sono pianificati tramite Oracle scheduler o OEM Microsoft SQL Server utilizza una gerarchia di blocchi ogni volta che i dati vengono letti o qualcosa viene modificato nei dati. Ogni volta che viene letta una riga, SQL Server acquisisce un blocco condiviso. Allo stesso modo, non appena cambiamo una riga, SQL Server acquisisce un blocco esclusivo. Questi blocchi sono incompatibili tra loro. Pertanto, i blocchi INTENT vengono utilizzati per indicare a un livello superiore quali blocchi vengono applicati all'interno di una gerarchia di blocchi. Esistono principalmente tre tipi di blocchi INTENT:
I passaggi da seguire per nascondere le istanze di SQL Server sono i seguenti:
I servizi di qualità dei dati in SQL Server sono un prodotto di qualità dei dati basato sulla conoscenza. SQL Server Data Quality Services (DQS) consente all'utente di creare una base di conoscenza e di utilizzarla successivamente per eseguire attività quali correzione, deduplicazione, arricchimento e standardizzazione dei dati. Oltre a questo, DQS fornisce anche la profilazione e ti consente di eseguire la pulizia dei dati con l'aiuto di servizi di dati basati su cloud. DQS è costituito da due componenti: Le tabelle magiche sono tabelle create automaticamente in SQL Server utilizzate per archiviare internamente i valori inseriti e aggiornati per operazioni DML come (SELECT, DELETE, INSERT, UPDATE, ecc.). Change Data Capture o più comunemente noto come CDC viene utilizzato per registrare le attività INSERT, UPDATE, DELETE applicate alle tabelle. Quindi, come suggerisce il nome, Change Data Capture viene utilizzato per acquisire i dati che sono stati modificati di recente. Le informazioni sulla colonna e i metadati necessari per applicare le modifiche all'ambiente di destinazione vengono acquisiti per le righe modificate e infine archiviati nelle tabelle delle modifiche. Queste tabelle delle modifiche sono l'immagine speculare della struttura della colonna originale. I trigger vengono utilizzati per eseguire batch di codice SQL ogni volta che i comandi INSERT, DELETE o UPDATE vengono eseguiti su una tabella. Quindi, in pratica, i trigger vengono eseguiti automaticamente ogni volta che i dati vengono modificati in base alle operazioni di manipolazione dei dati.
I diversi tipi di trigger sono i seguenti: Una procedura memorizzata ricorsiva è un metodo di risoluzione dei problemi attraverso il quale puoi arrivare alla soluzione ancora e ancora. Il processo di automazione del backup per ripristinare i database da un server standalone a un altro server standalone standalone è noto come Log Shipping. Puoi anche considerare il log shipping come una delle soluzioni di ripristino di emergenza, in quanto garantisce che anche in caso di guasto di un server, il server di standby avrà gli stessi dati del server stesso.
I vantaggi di Log Shipping sono i seguenti: Questi flag sono usati per alterare il comportamento del server o per impostare le caratteristiche del server. Alcuni flag di traccia comuni utilizzati con SQL Server sono i seguenti Utilizzato per restituire una parte specifica della stringa in una determinata stringa Utilizzato per restituire la posizione di un carattere in una determinata stringa specificata Esempio: SUBSTRING('Edureka',1,4) Risultato: Edur Esempio: CHARINDEX('r','Edureka',1) Risultato: 4 Analysis Services in Microsoft SQL Server è un motore di dati analitici utilizzato nell'analisi aziendale e nel supporto decisionale. Questo servizio fornisce modelli semantici di livello aziendale per applicazioni client e report come Power BI, Microsoft Excel e altri strumenti di visualizzazione. Analysis Services è disponibile in piattaforme come : Il mirroring in SQL Server è progettato per mantenere un server hot standby, coerente con il server primario in termini di transazione. Inoltre, i record del registro delle transazioni vengono inviati dal server principale al server secondario. Di seguito sono riportati i vantaggi del mirroring: I cursori basati su SQL Server vengono utilizzati quando si desidera lavorare su un record in qualsiasi momento, invece di prendere tutti i dati da una tabella in blocco. Tuttavia, non è preferibile utilizzare i cursori quando sono presenti grandi volumi di dati poiché influiscono sulle prestazioni. In uno scenario in cui non è possibile evitare i cursori, provare a ridurre il numero di record da elaborare utilizzando una tabella temporanea e quindi creare eventualmente il cursore da questa. Il design fisico e logico gioca un ruolo importante nelle prestazioni delle applicazioni basate su SQL Server. È necessario garantire che i dati corretti vengano acquisiti in tabelle appropriate, che gli elementi di dati abbiano relazioni adeguate tra loro e la ridondanza dei dati sia ridotta. Suggerirei anche che mentre stai progettando un database, assicurati che sia un processo iterativo per raggiungere tutti gli obiettivi di sistema richiesti e che sia sotto costante osservazione. Una volta impostata la progettazione del database, è molto difficile modificare la progettazione in base alle esigenze. Puoi solo aggiungere nuove relazioni ed elementi di dati. Q27. Cosa intendi per funzione definita dall'utente in SQL Server e spieghi i passaggi per creare ed eseguire una funzione definita dall'utente in SQL Server? Una funzione definita dall'utente è una funzione scritta secondo le esigenze dell'utente implementando la logica. In questo tipo di funzioni l'utente non si limita a funzioni predefinite e semplifica il codice complesso di funzioni predefinite scrivendo un codice semplice. Questa funzione restituisce un valore scalare o una tabella. Per creare una funzione definita dall'utente, fare riferimento al seguente esempio:
Per eseguire la funzione sopra creata, fare riferimento al seguente comando: Uno sviluppatore deve controllare il tipo di informazioni memorizzate, il volume di dati e i dati a cui si accederà. In uno scenario, in cui stai aggiornando un sistema esistente, dovresti analizzare i dati attuali, si verificano i volumi di dati esistenti e controllare il metodo attraverso il quale si accede ai dati, per aiutarti comprendere le aree problematiche per la progettazione. In uno scenario, in cui stai utilizzando un nuovo sistema, devi conservare le informazioni su quali dati verranno acquisiti, quali sono i componenti dei dati e la relazione tra i dati. Una relazione in DBMS è lo scenario in cui due entità sono correlate tra loro. In tale scenario, la tabella composta da chiave esterna fa riferimento a quella di una chiave primaria dell'altra tabella. I diversi tipi di relazioni in DBMS sono i seguenti:
Una clausola JOIN viene utilizzata per combinare righe di due o più tabelle, in base a una colonna correlata tra di loro. Viene utilizzato per unire due tabelle o recuperare dati da lì. Ci sono 4 join in SQL, vale a dire: Il comando DBCC CHECKDB viene utilizzato per verificare l'integrità fisica e logica di tutti gli oggetti nel database menzionato. Per farlo, esegue le seguenti operazioni: Quindi, devi solo eseguire il comando DBCC CHECKDB e automaticamente i comandi DBCC CHECKALLOC, DBCC CHECKTABLE o DBCC CHECKCATALOG vengono eseguiti. Si noti inoltre che DBCC è supportato nei database che contengono tabelle ottimizzate per la memoria ma non fornisce opzioni di riparazione. Ciò implica che è necessario eseguire regolarmente il backup dei database e testare tali backup. Il vincolo CHECK in SQL Server viene utilizzato per limitare i valori o il tipo di dati archiviati in una colonna. Dopo aver applicato il vincolo CHECK su una singola colonna, puoi andare avanti e applicare valori specifici per quella particolare colonna. Questa funzione viene utilizzata per restituire la prima espressione non nulla all'interno degli argomenti. Il comando COALESCE viene utilizzato per restituire un valore non nullo da più di una singola colonna negli argomenti. La funzione FLOOR viene utilizzata per arrotondare per eccesso un valore non intero al valore intero minimo precedente. Questa funzione restituisce un valore univoco dopo aver arrotondato le cifre.
Sintassi:
Esempio: Per controllare i blocchi nel database, puoi utilizzare la procedura memorizzata integrata sp_lock.
Per elencare tutti i blocchi attualmente mantenuti in un'istanza del Motore di database, utilizzare il comando seguente:
Di seguito sono riportati tre modi per contare il numero di record nella tabella:
Questa funzione viene utilizzata per determinare se il numero indicato è zero, positivo e negativo. Quindi, restituirà 0, +1, -1.
Per trovare il primo giorno della settimana del mese, puoi scrivere una query come segue: Per rinominare un database, devi usare il comando sp_renamedb nel modo seguente:
Per trovare il 5° importo più alto pagato dalla tabella dei clienti, puoi scrivere una query come di seguito:
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.
Nota: 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 Formazione per la certificazione DBA MySQL di Edureka, una società di formazione online affidabile con una rete di di oltre 250.000 studenti soddisfatti sparsi in tutto il mondo. Questo corso ti insegna i concetti fondamentali e gli strumenti e le tecniche avanzati per gestire i dati e amministrare il database MySQL. Include l'apprendimento pratico su concetti come MySQL Workbench, MySQL Server, Data Modeling, MySQL Connector, Database Design, MySQL Command line, MySQL Functions, ecc. Alla fine della formazione sarai in grado di creare e amministrare il tuo database MySQL e gestire i dati. Hai una domanda per noi? 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.
Q10. Come si avvia la modalità utente singolo in cluster installazioni?
net start MSSQLSERVER /m.
SQLCMD -E -S<servername>.
Q11. Cosa intendi per replica in SQL Server? Menziona i diversi tipi di replica in SQL Server.
Q12. Quali sono le differenze tra MS SQL Server e Oracle?
MS SQL Server Oracle Q13. Cosa intendi per blocchi INTENT?
Q14. Quali sono i passaggi da seguire per nascondere le istanze di SQL Server?
Q15. Cosa intendi per servizi di qualità dei dati in SQL Server?
Q16. Spiega le tabelle magiche nel server SQL
Q17. Cosa capisci da Modifica acquisizione dati ?
Q18. Cosa intendi per trigger e ne menzioni i diversi tipi?
Q19. Cosa intendi per procedura memorizzata ricorsiva?
Q20. Spiega Log Shipping e menziona i suoi vantaggi.
Q21. Cosa sono i flag di traccia e menzionare alcuni flag di traccia comuni utilizzati con SQL Server?
Q22. Menziona le differenze tra SUBSTR e CHARINDEX in SQL Server.
SUBSTR CHARINDEX Q23. Cosa intendi per Analysis Services in SQL Server?
Q24. Cosa intendi per Mirroring e menzioni i vantaggi del Mirroring?
Q25. Quando pensi che uno sviluppatore dovrebbe utilizzare i cursori basati su SQL Server?
Q26. Quale ruolo ha la progettazione del database nelle prestazioni di un'applicazione basata su SQL Server?
CREATE FUNCTION samplefunc(@num INT)
RETURNS TABLE
AS
RETURN SELECT * FROM customers WHERE CustId=@num
SELECT * FROM samplefunc(10)
Q28. Come puoi assicurarti che il database e l'applicazione basata su SQL Server funzionino bene?
Q29. Cosa sono le relazioni e menziona i diversi tipi di relazioni nel DBMS
Q30. Cosa sono i join in SQL e quali sono i diversi tipi di join?
Q31. A cosa serve il comando DBCC CHECKDB?
Q32. Cosa intendi per vincolo CHECK in SQL Server?
Esempio:
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. Cosa fare capisci COALESCE in SQL Server?
Esempio:
SELECT COALESCE(CustID, CustName, Amount) from Customers;
Q34. Spiega l'utilizzo della funzione FLOOR in SQL Server.
FLOOR(expression)
FLOOR(7.3)
Q35. Qual è il comando utilizzato per controllare i blocchi in Microsoft SQL Server?
Sintassi
sp_lock [ [ @spid1 = ] 'session ID1' ] [ , [@spid2 = ] 'session ID2' ]
[ ; ]
Esempio:
USE SampleDB;
GO
EXEC sp_lock;
GO
Q36. Indica i 3 modi per ottenere un conteggio del numero di record in una tabella.
SELECT * FROM TableName;
SELECT COUNT(*) FROM TableName;
SELECT rows FROM indexes WHERE id = OBJECT_ID(TableName) AND indexid< 2;
Q37. Qual è l'utilizzo della funzione SEGNO?
Sintassi:
SIGN(number)
Esempio:
SIGN (0) returns 0
SIGN (21) returns 1
SIGN (-21) returns -1
Q38. Scrivere una query SQL per trovare il primo giorno della settimana del mese?
SELECT DATENAME(dw, DATEADD(dd, – DATEPART(dd, GETDATE()) + 1, GETDATE())) AS FirstDay;
Q39. Menziona il comando utilizzato per rinominare il database.
sp_renamedb 'OldDatabaseName', 'NewDatabaseName';
Q40. Scrivi una query per trovare il 5° importo più alto pagato dalla tabella Clienti.
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?
Sintassi:
DELETE TableName
Esempio:
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?