Search the Blog

Showing posts with label Query Optimization. Show all posts
Showing posts with label Query Optimization. Show all posts

Monday, September 7, 2020

SQL server Upgrade

 

When you upgrade to a new version of SQL Server, there are some critical things you should do to help avoid any surprise SQL Server performance issues. I mean new version  of SQL Server is 2016,2017 or 2019, Because Microsoft  closed its support up to some extent to older version


Why need the Requirement to upgrade the Version?

Basically it is because Microsoft ended Its support of some versions.

There are two type of Support

1- MainStream Support

2- Extended Support


SQL Server Versions

MainStream Support

Extended Support

SQL Server 2005

April 12, 2011

April 12, 2016

SQL Server 2008 or R2

July 8, 2014

July 9,2019

SQL Server 2012

July 11, 2017

July 12, 2022

SQL Server 2014

July 9, 2019

July 9, 2024

SQL Server 2016

July 13, 2021

July 14, 2026

SQL Server 2017

Oct 11, 2022

Oct 12, 2027

SQL Server 2019

July 1, 2025

Aug 1, 2030


For Upgrading any Version there are some preparations which need to be taken care.

1- Find the Upgrade Blockers. 

2- Clear Understanding of Version and Editions.

3- Clear Understanding of Features introduced and obsolete

3- Make a List of objects which use the features which  are obsolete from the newer version and currently in use.

4- Clear Hardware Requirement for newer Versions. 






















For this Activity i am upgrading the Server from 2012 to 2017.


Process to Upgrade the SQL Server Version.

There are 3 ways to upgrade

  1. - In-Place Upgrade

  2. - Side-by-Side Upgrade

  3. - Rolling Upgrade


Steps for an In-Place Upgrade 

In-place upgrades are the easiest to perform, but the most difficult to rollback should there be any issues. The steps involved in an in-place upgrade are as follows:

  1. Verify that backups exist for all databases (user and system). 

  2. Review the list of requirements for SQL server 2017 and install whatever is needed.

  3. Install SQL Server 2017 

  4. Restore the Backup

Side-by-Side Upgrade

  • 1- Backup all the database

  • 2-Script out any and all necessary system objects.

            3-Review the list of requirements for SQL server 2017 and install whatever is needed.

  • 4- Run the script to create the Object

  • 5-Select database(s) to migrate and it take offline. 

  • 6-Migrate database to new instance. Repeat for each database.

  •  

 

 

 

Rolling Upgrade


1- Select any High-Availability 

2- Install new Server instance 2017 and make it  as a Secondary node

3- Fail the Primary Node now New Instance will be active and will be Primary Node

 

Checklist need to Perform Before Planning to Upgrade about version of Server


1-Checking of Deprecated Features  in new version

SELECT * FROM sys.dm_os_performance_counters   WHERE object_name  = 'MSSQL$JFT:Deprecated Features   

2- Get the List top indexes which are in use maximum times in the current version.

SELECT OBJECT_NAME(IX.OBJECT_ID) Table_Name

      ,IX.name                     AS Index_Name

      ,IX.type_desc                 AS Index_Type

      ,SUM(PS.[used_page_count]) * 8     IndexSizeKB

      ,IXUS.user_seeks AS             NumOfSeeks

      ,IXUS.user_scans AS             NumOfScans

      ,IXUS.user_lookups AS             NumOfLookups

      ,IXUS.user_updates AS             NumOfUpdates

      ,IXUS.last_user_seek AS         LastSeek

      ,IXUS.last_user_scan AS         LastScan

      ,IXUS.last_user_lookup AS         LastLookup

      ,IXUS.last_user_update AS         LastUpdate

FROM sys.indexes IX

INNER JOIN sys.dm_db_index_usage_stats IXUS 

ON IXUS.index_id = IX.index_id AND IXUS.OBJECT_ID = IX.OBJECT_ID

INNER JOIN sys.dm_db_partition_stats PS 

on PS.object_id=IX.object_id

WHERE OBJECTPROPERTY(IX.OBJECT_ID,'IsUserTable') = 1

GROUP BY 

OBJECT_NAME(IX.OBJECT_ID) ,

IX.name ,

IX.type_desc ,

IXUS.user_seeks ,

IXUS.user_scans ,

IXUS.user_lookups,

IXUS.user_updates ,

IXUS.last_user_seek ,

IXUS.last_user_scan ,

IXUS.last_user_lookup ,

IXUS.last_user_update

3- Current Used Space at current instance and Available Space in the new instance.

4- Current OS Hardware Configuration.

5- Scripting of all user defined Objects.

 

Thursday, September 3, 2020

SQL Server best Interview Quations

 In this real-world SQL Server Developer Interview Questions post, we have put together both advanced and basic SQL Interview Questions and Answers.

Interview Questions for 2021 candidate Sql server 

1. Why Truncate is a example of DDL statement? 2. Difference between cluster index and non-cluster index ? 3. Difference between CTE and Temp. table? 4. Difference between Rank and dense rank. 5. explain type of cursor ? 6. Query to find duplicate rows in table? 7. What are the differences between Stored Procedure and the dynamic SQL? 8. What is Collation? 9. What are Magic Tables in SQL Server? 10. What is the difference between varchar and nvarchar types? 11. What are the differences between left join and outer left join ? 12. explain types of user defined functions?

1. What is Data warehouse?

Data warehouse refers to a central repository of data from multiple sources of information. Those data are consolidated, transformed and made available for the mining as well as online processing.

2. What is a Database?

A database is a collection of information in an organized form for faster and better access, storage, and manipulation. It can also be defined as a collection of tables, schema, views, and other database objects.

3. What is a Field in a Database?

A field in a Database table is a space allocated to store a particular record within a table.

4. What is a Table in a Database?

A table is a database object used to store records in a field in the form of columns and rows that holds data.

5. What is a column in a Table?

A column is a vertical entity in a table that contains all information associated with a specific field in a table.

6. What is a Record in a Database?

A record (also called a row of data) is an ordered set of related data in a table.

7. What are the popular Database Management Systems in the IT Industry?

Oracle, 

MySQL, 

Microsoft SQL Server, 

PostgreSQL, 

Sybase, 

MongoDB, 

DB2, 

Microsoft Access etc.,

8. What is RDBMS?

RDBMS stands for Relational Database Management System. RDBMS is a database management system (DBMS) that is based on the relational model. Data from a relational database can be accessed using Structured Query Language (SQL).

9. What are the types of DBMS?

There are two types of DBMS
1. Relational Database Management System (RDBMS)
2. Non-Relational Database Management System.

10. What is DBMS?

Database Management System is a collection of programs that enables a user to store, retrieve, update and delete information from a database.

11. What are the different types of SQL commands?

SQL commands are segregated into the following types:

  • DDL – Data Definition Language
  • DML – Data Manipulation Language
  • DQL – Data Query Language
  • DCL – Data Control Language
  • TCL – Transaction Control Language

12. What is SQL?

SQL Overview: SQL stands for Structured Query Language. It is an American National Standard Institute (ANSI) standard. It is a standard language for accessing and manipulating databases. Using SQL, some of the action we could do are to create databases, tables, stored procedures (SP’s), execute queries, retrieve, insert, update, delete data against a database.

 

13. Which TCP/IP port does SQL Server run?

  1433

14. List out the ACID properties and explain? 

Following are the four properties of ACID. These guarantees that the database transactions are processed reliably.

  • Atomicity
  • Consistency
  • Isolation
  • Durability

15. Define the SELECT INTO statement.

The SELECT INTO statement copies data from one table into a new table. The new table will be created with the column-names and types as defined in the old table. You can create new column names using the AS clause.

SELECT * INTO NEW_TABLE_NAME FORM OLD_TBALE_NAME CONDITION;


16. What is the difference between Delete, Truncate and Drop command?

The difference between the Delete, Truncate and Drop command is

  • Delete command is a DML command, it is used to delete rows from a table. It can be rolled back.
  • Truncate is a DDL command, it is used to delete all the rows from the table and free the space containing the table. It cant be rolled back.
  • Drop is a DDL command, it removes the complete data along with the table structure(unlike truncate command that removes only the rows). All the tables’ rows, indexes, and privileges will also be removed.

17. What is the difference between Union and Union All command?

Union: It omits duplicate records and returns only distinct result set of two or more select statements.
Union All: It returns all the rows including duplicates in the result set of different select statements.

Performance wise Union All is faster than Union, Since Union All doesn’t remove duplicates. Union query checks the duplicate values which consumes some time to remove the duplicate records.

Assume: Table_dizsweb has 20 records, Table_sawan has 20 records. Last record from both the tables are same.

If you run Union query.

SELECT * FROM TABLE_DIZSWEB

UNION

SELECT * FROM TABLE_SAWAN

Output: Total 39 records

SELECT * FROM TABLE_DIZSWEB

UNION

SELECT * FROM TABLE_SAWAN

 

Output: Total 40 records

 

18. What is CLAUSE in SQL?

SQL CLAUSE helps to limit the result set by providing a condition to an SQL Query. A CLAUSE helps to filter the rows from the entire set of records. SQL CLAUSES are WHERE & HAVING.

19. What is the difference between Having and Where clause?

Where clause is used to fetch data from a database that specifies particular criteria whereas a Having clause is used along with ‘GROUP BY’ to fetch data that meets particular criteria specified by the Aggregate functions. Where clause cannot be used with Aggregate functions, but the Having clause can.

20. What are aggregate functions in SQL?

SQL aggregate functions return a single value, calculated from values in a column. Some of the aggregate functions in SQL are as follows

  • AVG() – This function returns the average value
  • COUNT() – This function returns the number of rows
  • MAX() – This function returns the largest value
  • MIN() – This function returns the smallest value
  • ROUND() – This function rounds a numeric field to the number of decimals specified
  • SUM() – This function returns the sum

21. What are string functions in SQL?

SQL string functions are used primarily for string manipulation. Some of the widely used SQL string functions are

  • LEN() – It returns the length of the value in a text field
  • LOWER() – It converts character data to lower case
  • UPPER() – It converts character data to upper case
  • SUBSTRING() – It extracts characters from a text field
  • LTRIM() – It is to remove all whitespace from the beginning of the string
  • RTRIM() – It is to remove all whitespace at the end of the string
  • CONCAT() – Concatenate function combines multiple character strings together
  • REPLACE() –  To update the content of a string.

22. What are user defined functions?

As the name suggests these are written by users as per their requirement. User-defined functions are the functions written to use a logic whenever required.

23. What are all types of user-defined functions?

There are three types of user-defined function, namely
• Scalar Functions
• Inline Table-valued functions
• Multi-statement valued functions

Scalar functions return unit, variant defined the return clause.
Inline Table-valued functions and Multi-statement valued functions return table as a return.

24. What is Self-Join?

A self-join is a join in which a table is joined with itself, especially when the table has a Foreign Key which references its own Primary Key.

25. What is Cross-Join?

Cross join produces a result set which is the number of rows in the first table multiplied by a number of rows in the second table if no WHERE clause is used along with Cross join. This kind of result is known as Cartesian Product. If suppose, Where clause is used in cross join then the query will work like an Inner join.

26. What is Collation?

Collation is defined as a set of rules that determine how character data can be sorted as well as compared. Character data is sorted using rules that define the correct character sequence along with options for specifying case-sensitivity, character width, accent marks, kana character types.

27. What are all different types of collation sensitivity?

Different types of collation sensitivity are as follows
Case Sensitivity: A and a and B and b.
Kana Sensitivity: Japanese Kana characters.
Width Sensitivity: Single byte character and double byte character.
Accent Sensitivity.

28. How to get unique records from a table?

By using DISTINCT keyword, we can get unique records from a table

29. What is the command used to fetch the first 5 characters of a string?

Some of the ways to fetch the first 5 characters of a string are as follows:

30. How to add new Employee details in an Employee_Details table with the following details
Employee_Name: John, Salary: 5500, Age: 29?

31. How to add a column ‘Salary’ to a table Employee_Details?


32. How to change a value of the field ‘Salary’ as 7500 for an Employee_Name ‘John’ in a table Employee_Details?

33. Write an SQL Query to select all records from the table?

34. How To Get List of All Tables From A DataBase?

To view the tables available on a particular DataBase

35. Define SQL Delete statement.

The SQL Delete statement is used to delete records from a table.

36. Write the command to remove all Players named Sachin from the Players table.

37. How to fetch values from TestTable1 that are not in TestTable2 without using NOT keyword?

By using the except keyword

38. How to get each name only once from an employee table?

By using the DISTINCT keyword, we could get each name only once.

39. How to rename a column in the output of SQL query?

By using SQL AS keyword

40. What is the order of SQL SELECT?

Order of SQL SELECT statement is as follows

SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY.

41. How to display the current date in SQL?

In SQL, there is a built-in function called GetDate() which helps to return the current date.

42. Write an SQL Query to find an Employee_Name whose Salary is equal or greater than 5000 from the below table Employee_Details.

Syntax:

Output:

43. Write an SQL Query to find list of Employee_Name start with ‘E’ from the below table

Syntax:

Output:

44. Write SQL SELECT query that returns the FirstName and LastName from Employee_Details table. 

45. How to rename a Table?

To rename Table Name & Column Name

46. How to select all the even number records from a table? 

To select all the even number records from a table:

47. How to select all the odd number records from a table? 

To select all the odd number records from a table:

48. What is the SQL CASE statement?

SQL Case statement allows embedding an if-else like clause in the SELECT statement.

49. Can you display the result from the below table TestTable based on the criteria M,m as M and F, f as F and Null as N and g, k, I as U

By using the below syntax we could achieve the output as required.

50. What will be the result of the query below? 

This query returns “False”. In the above question, we could see null = null is not the proper way to compare a null value. To compare a value with null, we use IS operator in SQL.

So the correct way is as follows

52. What will be the result of the query below? 

This query will returns “Queries In SQL Server”.

53. How do you update F as M and M as F from the below table TestTable? 

By using the below syntax we could achieve the output as required.

54. Describe SQL comments?

Single Line Comments: Single line comments start with two consecutive hyphens (–) and ended by the end of the line
Multi-Line Comments: Multi-line comments start with /* and end with */. Any text between /* and */ will be ignored.

55. What is the difference between NVL function, IFNULL function, and ISNULL function?

These three functions work in the same way. These functions are used to replace NULL value with another value. Oracle developers use NVL function, MySQL developers use IFNULL function and SQL Server developers use ISNULL function.
Assume, some of the values in a column are NULL.
If you run below statement, you will get result as NULL

Suppose any of the value in col3 is NULL then as I said your result will be NULL.

To overcome this we use NVL() function, IFNULL() function, ISNULL() Function.

ORACLE:

MySQL:

Also, you can use the COALESCE() function

SQL Server:

56. What is Database Testing?

It is AKA back-end testing or data testing.
Database testing involves in verifying the integrity of data in the front end with the data present in the back end. It validates the schema, database tables, columns, indexes, stored procedures, triggers, data duplication, orphan records, junk records. It involves in updating records in a database and verifying the same on the front end.

 

 

 

57. What are the different DDL commands in SQL?

DDL commands are used to create or alter the structure of the database.

  • CREATE: To create databases and database objects
  • ALTER: To alter existing database objects
  • DROP: To drop databases and databases objects
  • TRUNCATE: To remove all records from a table but not its database structure
  • RENAME: To rename database objects

58. What are the different DML commands in SQL?

DML commands are used for managing data present in the database.

  • SELECT: To select specific data from a database
  • INSERT: To insert new records into a table
  • UPDATE: To update existing records
  • DELETE: To delete existing records from a table

59. What are the different DCL commands in SQL?

DCL commands are used to create roles, grant permission, and control access to the database objects.

  • GRANT: To provide user access
  • DENY: To deny permissions to users
  • REVOKE: To remove user access

60. What are the different TCL commands in SQL?

TCL commands are used to manage the changes made by DML statements.

  • COMMIT: To write and store the changes to the database
  • ROLLBACK: To restore the database since the last commit

61. What is an Index?

An index is used to speed up the performance of queries. It makes faster retrieval of data from the table. The index can be created on one column or a group of columns.

62. What are all the different types of indexes?

There are three types of indexes

1. Unique Index: Unique Indexes helps maintain data integrity by ensuring that no two rows of data in a table have identical key values. A unique index can be applied automatically when a primary key is defined. It ensures that the values in the index key columns are unique.
2. Clustered Index: Clustered Index reorders the physical order of the table and search based on the key values. There will be only one clustered index per table.
3. Non-Clustered Index: Non-Clustered Index doesn’t alter the physical order of the table and maintains a logical order of the data. Each table can have many non-clustered indexes.

63. What is the difference between Cluster and Non-Cluster Index?

The difference between the clustered and non-clustered index in SQL is as follows:
Clustered Index:
It is used for easy retrieval of data from the database and it is faster.
One table can only have one clustered index
It alters the way records are stored in a database as it sorts out rows by the column which is set to be clustered index.
Non-Clustered Index:
It is slower compared to the Clustered index.
One table can have multiple non clustered index
It doesn’t alter the way it was sorted but it creates a separate object within a table which points back to the original table rows after searching.

64. What is a View in SQL?

A view is like a subset of a table which is stored logically in a database. A view is a virtual table. It contains rows and columns similar to a real table. The fields in the view are fields from one or more real tables. Views do not contain data of their own. They are used to restrict access to the database or to hide data complexity.

65. What are the advantages of Views?

Some of the advantages of Views are

  1. Views occupy no space
  2. Views are used to simply retrieve the results of complicated queries that need to be executed often.
  3. Views are used to restrict access to the database or to hide data complexity.

66. What is a relationship and what are they?

Database Relationship is defined as the connection between the tables in a database. There are various database relationships namely

1. One to One Relationship
2. One to Many Relationship
3. Many to One Relationship
4. Self-Referencing Relationship

67. What is a query?

A database query is a request for data or information from a database table or combination of tables. A database query can be either a select query or an action query.

68. What is a Subquery?

A Subquery is a SQL query within another query. It is a subset of a Select statement whose return values are used in filtering the conditions of the main query.

69. What are the types of subquery?

There are two types of subquery:

1. Correlated: In a SQL database query, a correlated subquery is a subquery that uses values from the outer query in order to complete. Because a correlated subquery requires the outer query to be executed first, the correlated subquery must run once for every row in the outer query. It is also known as a synchronized subquery.

2. Non-Correlated: A Non-correlated subquery is a subquery in which both outer query and inner query are independent to each other.

70. What is Synchronized Subquery?

Refer Correlated Subquery.

71. What is the difference between Local Variables and Global Variables?

Local Variables: Local variables can be used or exist only inside the function. These variables are not used or referred by any other functions. These are not known to other functions. Variables can be created whenever that function is called.

Global Variables: Global variables can be used or exist throughout the program. Same variable declared in global cannot be used in functions. Global variables cannot be created whenever that function is called.

72. What is data Integrity?

Data integrity defines the accuracy and consistency of the data stored in a database. It also defines integrity constraints to enforce business rules on the data when it is entered into an application or a database.

73. What is Auto Increment in SQL?

It is one of the important Oracle DBA Interview Questions.

Auto increment keyword allows the user to create a unique number to get generated when a new record is inserted into a table. Auto increment keyword can be used whenever Primary Key is used.

Auto increment keyword is used in Oracle and IDENTITY keyword is used in SQL Server.

74. What is a temp table?

A temp table is a temporary storage structure to store the data temporarily.

75. How to avoid duplicate records in a query?

The SQL SELECT DISTINCT query is used to return only unique values. It eliminates all the duplicated values.

76. What is the difference between Rename and Alias?

‘Rename’ is a permanent name given to a table or column
‘Alias’ is a temporary name given to a table or column.

77. What is a Join?

Join is a query, which retrieves related columns or rows from multiple tables.

78. What are the different types of joins?

Types of Joins are as follows:

  • INNER JOIN
  • LEFT JOIN
  • RIGHT JOIN
  • OUTER JOIN

79. What is the difference between an inner and outer join?

Inner Join: An inner join returns rows when there is at least some matching data between two (or more) tables that are being compared.

Outer Join: An outer join returns rows from both tables that include the records that are unmatched from one or both the tables.

80. What are SQL constraints?

SQL constraints are the set of rules that enforced some restriction while inserting, deleting or updating of data in the databases.

81. What are the constraints available in SQL?

Some of the constraints in SQL are – Primary Key, Foreign Key, Unique Key, SQL Not Null, Default, Check and Index constraint.

82. What is a Unique constraint?

A unique constraint is used to ensure that there are no duplication values in the field/column.

83. What is a Primary Key?

A PRIMARY KEY constraint uniquely identifies each record in a database table. All columns participating in a primary key constraint must not contain NULL values.

84. Can a table contain multiple PRIMARY KEY’s?

The short answer is no, a table is not allowed to contain multiple primary keys but it allows to have one composite primary key consisting of two or more columns.

85. What is a Composite PRIMARY KEY?

Composite PRIMARY KEY is a primary key created on more than one column (combination of multiple fields) in a table.

86. What is a FOREIGN KEY?

A FOREIGN KEY is a key used to link two tables together. A FOREIGN KEY in a table is linked with the PRIMARY KEY of another table.

87. Can a table contain multiple FOREIGN KEY’s?

A table can have many FOREIGN KEY’s.

88. What is the difference between UNIQUE and PRIMARY KEY constraints?

There should be only one PRIMARY KEY in a table whereas there can be any number of UNIQUE Keys.
PRIMARY KEY doesn’t allow NULL values whereas Unique key allows NULL values.

89. What is a NULL value?

A field with a NULL value is a field with no value. A NULL value is different from a zero value or a field that contains spaces. A field with a NULL value is one that has been left blank during record creation. Assume, there is a field in a table is optional and it is possible to insert a record without adding a value to the optional field then the field will be saved with a NULL value.

90. What is the difference between NULL value, Zero, and Blank space?

As I mentioned earlier, Null value is field with no value which is different from zero value and blank space.
Null value is a field with no value.
Zero is a number
Blank space is the value we provide. The ASCII value of space is CHAR(32).

91. How to Test for NULL Values?

A field with a NULL value is a field with no value. NULL value cannot be compared with other NULL values. Hence, It is not possible to test for NULL values with comparison operators, such as =, <, or <>. For this, we have to use the IS NULL and IS NOT NULL operators.

92. What is SQL NOT NULL constraint?

NOT NULL constraint is used to ensure that the value in the filed cannot be a NULL

93. What is a CHECK constraint?

A CHECK constraint is used to limit the value that is accepted by one or more columns.

E.g. ‘Age’ field should contain only the value greater than 18.

94. What is a DEFAULT constraint?

DEFAULT constraint is used to include a default value in a column when no value is supplied at the time of inserting a record.

95. What is Normalization?

Normalization is the process of table design to minimize the data redundancy.

96. What are all the different Normalization? 

There are different types of Normalization forms in SQL.

  • First Normal Form (1NF)
  • Second Normal Form (2NF)
  • Third Normal Form (3NF)
  • Boyce and Codd Normal Form (BCNF)

97. What is Denormalization?

Denormalization is a database optimization technique used to increase the performance of a database infrastructure. It involves in the process of adding redundant data to one or more tables. In a normalized database, we store data in separate logical tables and attempt to minimize redundant data.

98. What is Stored procedure?

A Stored Procedure is a collection of SQL statements that have been created and stored in the database to perform a particular task. The stored procedure accepts input parameters and processes them and returns a single value such as a number or text value or a result set (set of rows).

99. What is a Trigger?

A Trigger is a SQL procedure that initiates an action in response to an event (Insert, Delete or Update) occurs. When a new Employee is added to an Employee_Details table, new records will be created in the relevant tables such as Employee_Payroll, Employee_Time_Sheet etc.,

100. Explain SQL Data Types?

In SQL Server, each column in a database table has a name and a data type. We need to decide what type of data to store inside each and every column of a table while creating a SQL table.

101. What are the possible values that can be stored in a BOOLEAN data field?

TRUE and FALSE

102. What is the largest value that can be stored in a BYTE data field?

The largest number that can be represented in a single byte is 11111111 or 255. The number of possible values is 256 (i.e. 255 (the largest possible value) plus 1 (zero), or 28).

103. What are Operators available in SQL?

SQL Operator is a reserved word used primarily in an SQL statement’s WHERE clause to perform operations, such as arithmetic operations and comparisons. These are used to specify conditions in an SQL statement.

There are three types of Operators.

  1. Arithmetic Operators
  2. Comparison Operators
  3. Logical Operators

 

 

 

 

 

 

 

 

 

 

 

 

Translate