SQL SERVER – Interview Questions and Answers – Frequently Asked Questions – Day 7 of 31

Click here to get free chapters (PDF) in the mailbox

Please read the Introductory Post before continue reading interview question and answers.

List of all the Interview Questions and Answers Series blogs

What are Different Types of Locks?

  • Shared Locks: Used for operations that do not change or update data (read-only operations), such as a SELECT statement.
  • Update Locks: Used on resources that can be updated. It prevents a common form of deadlock that occurs when multiple sessions are reading, locking, and potentially updating resources later.
  • Exclusive Locks: Used for data-modification operations, such as INSERT, UPDATE, or DELETE. It ensures that multiple updates cannot be made to the same resource at the same time.
  • Intent Locks: Used to establish a lock hierarchy. The types of intent locks are as follows: intent shared (IS), intent exclusive (IX), and shared with intent exclusive (SIX).
  • Schema Locks: Used when an operation dependent on the schema of a table is executing. The types of schema locks are schema modification (Sch-M) and schema stability (Sch-S).
  • Bulk Update Locks: Used when bulk-copying data into a table and the TABLOCK hint is specified.

What are Pessimistic Lock and Optimistic Lock?

Optimistic Locking is a strategy where you read a record, take note of a version number and check that the version hasn’t changed before you write the record back. If the record is dirty (i.e. different version to yours), then you abort the transaction and the user can re-start it.

Pessimistic Locking is when you lock the record for your exclusive use until you have finished with it. It has much better integrity than optimistic locking but requires you to be careful with your application design to avoid Deadlocks.

When is the use of UPDATE_STATISTICS command?

This command is basically used when a large amount of data is processed. If a large amount of deletions, modifications or Bulk Copy into the tables has occurred, it has to update the indexes to take these changes into account. UPDATE_STATISTICS updates the indexes on these tables accordingly.

What is the Difference between a HAVING clause and a WHERE clause?

They specify a search condition for a group or an aggregate. But the difference is that HAVING can be used only with the SELECT statement. HAVING is typically used in a GROUP BY clause. When GROUP BY is not used, HAVING behaves like a WHERE clause. Having Clause is basically used only with the GROUP BY function in a query, whereas WHERE Clause is applied to each row before they are part of the GROUP BY function in a query. (Read more here)

What is Connection Pooling and why it is Used?

To minimize the cost of opening and closing connections, ADO.NET uses an optimization technique called connection pooling.

The pooler maintains ownership of the physical connection. It manages connections by keeping alive a set of active connections for each given connection configuration. Whenever a user calls Open on a connection, the pooler looks for an available connection in the pool. If a pooled connection is available, it returns it to the caller instead of opening a new connection. When the application calls Close on the connection, the pooler returns it to the pooled set of active connections instead of closing it. Once the connection is returned to the pool, it is ready to be reused on the next Open call.

What are the Properties and Different Types of Sub-Queries?

Properties of a Sub-Query

  • A sub-query must be enclosed in the parenthesis.
  • A sub-query must be put on the right hand of the comparison operator, and
  • A sub-query cannot contain an ORDER BY clause, however sub-query can use ORDER BY when used with TOP clause. Read Comment by David Bridge
  • A query can contain more than one sub-query.

Types of Sub-query

  • Single-row sub-query, where the sub-query returns only one row.
  • Multiple-row sub-query, where the sub-query returns multiple rows, and
  • Multiple column sub-query, where the sub-query returns multiple columns

What is an SQL Profiler?

SQL Profiler is a graphical tool that allows system administrators to monitor events in an instance of Microsoft SQL Server. You can capture and save data about each event to a file or SQL Server table to analyze later. For example, you can monitor a production environment to see which stored procedures are hampering performances by executing very slowly.

Use SQL Profiler to monitor only the events in which you are interested. If traces are becoming too large, you can filter them based on the information you want, so that only a subset of the event data is collected. Monitoring too many events adds overhead to the server and the monitoring process and can cause the trace file or trace table to grow very large, especially when the monitoring process takes place over a long period of time.

What are the Authentication Modes in SQL Server? How can it be Changed?

There are two authentication modes in SQL Server.

  • Windows Mode
  • Mixed Mode – SQL and Windows

To change authentication mode in SQL Server, go to Start -> Programs- > Microsoft SQL Server and click SQL Enterprise Manager to run SQL Enterprise Manager from the Microsoft SQL Server program group. Select the server; then from the Tools menu, select SQL Server Configuration Properties and choose the Security page.

List of all the Interview Questions and Answers Series blogs

Reference: Pinal Dave (https://blog.sqlauthority.com)

Previous Post
SQL SERVER – Interview Questions and Answers – Frequently Asked Questions – Day 6 of 31
Next Post
SQL SERVER – Introduction to expressor Datascript Modules

Related Posts

No results found.

13 Comments. Leave new

  • “A sub-query cannot contain an ORDER BY clause.”

    It can.

    but you must include a top x. This is because the order of the sub query ressults in unimporatant to the parent query however if you only want to top 10 or top 10 percent of the sub query results based on a column in that subquery then you need the order by. Also applies to xml.

    Its a small point but I thought it might be useful to someone.


    • David,

      Absolutely agree with your point. It can contain ORDER BY when used with TOP.

      It is not a small point but very good point, however there is always debate about why one need it. Keeping it on aside. I am updating the original blog post to refer to your comment.

      Many thanks,

      • Hi sir i reguraly look into your blog easy to understand and practices

      • Hi sir i’m looking for here document about What are the prerequisites of sql server clustering?
        What are the prerequisites of sql server migration and basic interview fqa’s above ,advice me

    • Hi Pinal,

      Can you explain this with an example?

  • Hi Sir, Iam not able to go Day 8 of 31? could you please provide the link..

  • Thanks for your well efforts.. to help..

  • Regarding UPDATE_STATISTICS, the way I’m reading it from the description, that the command “updates the indexes”. To be more clear, it doesn’t update the actual indexes like, for example, rebuilding an index does. Rather, it only updates the statistics on the target index, which is used by the query plan optimizer.

  • Hi Pinal,
    I just wanted to know that if there is any procedure made earlier with encryption so is there any way to decrypt it. I really require help from you…

    Is anybody here who can help me out from this situation.

  • Sourish Biswas
    February 9, 2012 7:51 pm

    Can you please provide me an example of ‘Multiple column sub-query’

    • Narendra Kumar
      July 9, 2012 12:54 pm

      SELECT A.SalesOrderID, A.OrderDate, SQ.Max_Foo, SQ.Max_Foo2 FROM A LEFT OUTER JOIN ( SELECT B.SalesOrderID, MAX(B.Foo) AS Max_Foo, MAX(B.Foo2) AS Max_Foo2 FROM B GROUP BY B.SalesOrderID ) AS SQ ON SQ.SalesOrderID = A.SalesOrderID


Leave a Reply