How to get all the Tables with or without Non-Clustered Indexes in Sql Server?
--List all the Tables with NO Non-Clustered IndexesSELECT Name 'Tables without any Non-Clustered Indexes'FROM SYS.tablesWHERE OBJECTPROPERTY(OBJECT_ID,'TableHasNonclustIndex') = 0 AND Type = 'U' |
We can write a query like below to get all the Tables with Non-Clustered indexes:
--List all the Tables that have Non-Clustered IndexesSELECT Name 'Tables with Non-Clustered Indexes'FROM SYS.tablesWHERE OBJECTPROPERTY(OBJECT_ID,'TableHasNonclustIndex') = 1 AND Type = 'U' |
Let us understand this with example:
CREATE DATABASE SqlHintsDemoDBGOUSE SqlHintsDemoDBGO/*Let us create Customers table with Clustered and Non-Clustered Indexes.*/CREATE TABLE dbo.Customers ( CustomerId int IDENTITY (1, 1) PRIMARY KEY CLUSTERED NOT NULL, FirstName Varchar(50), LastName Varchar(50))GOCREATE NONCLUSTERED INDEX IX_Customers ON dbo.Customers(FirstName,LastName)GO/*Let us create Orders Table with Clustered indexe only.*/CREATE TABLE dbo.Orders ( OrderId int IDENTITY (1, 1) PRIMARY KEY CLUSTERED NOT NULL, CustomerId int NOT NULL , CreationDT DATETIME NOT NULL)GO/*Let us create OrderItems Table without any indexes.*/CREATE TABLE dbo.OrderItems ( OrderItemId int IDENTITY (1, 1), OrderId int NOT NULL, Qty int NOT NUll)GO |
How to find all the tables with no indexes at all in Sql Server?
We can write a query like below to get all the Tables in the Database that don’t have any indexes:
SELECT Name 'Tables without any Indexes'FROM SYS.tablesWHERE OBJECTPROPERTY(OBJECT_ID,'TableHasIndex')=0 |
Let us understand this with an example:
CREATE DATABASE SqlHintsDemoDBGOUSE SqlHintsDemoDBGO/*Let us create Customers table with Clustered and Non-Clustered Indexes.*/CREATE TABLE dbo.Customers ( CustomerId int IDENTITY (1, 1) PRIMARY KEY CLUSTERED NOT NULL , FirstName Varchar(50), LastName Varchar(50))GOCREATE NONCLUSTERED INDEX IX_Customers ON dbo.Customers(FirstName,LastName)GO/*Let us create Orders Table without any indexes.*/CREATE TABLE dbo.Orders ( OrderId int IDENTITY (1, 1) NOT NULL , CustomerId int NOT NULL , CreationDT DATETIME NOT NULL)GO |
No comments:
Post a Comment