Creating an Index on a View in SQL Server

Q

How To Create an Index on a View in SQL Server?

✍: FYIcenter.com

A

If you need to search and sort data in a view with a large number of row, you may want to create an index on the view to speed up your search process.

The tutorial exercise below shows you how to create a unique clustered index on a view.

DROP VIEW fyi_links_view;
GO

CREATE VIEW fyi_links_view (ID, UrlReversed)
   AS SELECT id, REVERSE(url)
   FROM fyi_links_copy WHERE counts > 1000;
GO

CREATE UNIQUE CLUSTERED INDEX date_string 
   ON fyi_links_view (ID);
GO
Cannot create index on view 'fyi_links_view' 
   because the view is not schema bound.

ALTER VIEW fyi_links_view (ID, UrlReversed)
   WITH SCHEMABINDING
   AS SELECT id, REVERSE(url)
   FROM dbo.fyi_links_copy WHERE counts > 1000;
GO

CREATE UNIQUE CLUSTERED INDEX date_string 
   ON fyi_links_view (ID);
GO

EXEC SP_HELP fyi_links_view;
GO
index_name  index_description                    index_keys
----------- ------------------------------------ ----------
date_string clustered, unique located on PRIMARY ID

 

Understanding and Managing Views in SQL Server

⇒⇒SQL Server Database Tutorials

2016-11-03, 413👍, 0💬