Heaps

External Article

DELETE Operation in SQL Server HEAPs

  • Article

You should stick to using tables in SQL Server, rather than heaps that have no clustered index, unless you have well-considered reasons to choose heaps. However, there are uses for heaps in special circumstances, and it is useful to know what these uses are, and when you should avoid heaps. Uwe Ricken explains, and demonstrates why you'd be unwise to use heaps rather than tables when the data is liable to change.

2016-10-14

3,646 reads

External Article

SQL Server Heaps, and Their Fragmentation

  • Article

In SQL Server, heaps are rightly treated with suspicion. Although there are rare cases where they perform well, they are likely to be the cause of poor performance. If a table is likely to have a large number of changes, then it can become fragmented due to way that space is allocated and forward pointers used. How does one detect this problem? Is it significant? How does one deal with it, if necessary? Neeraj Tripathi explains.

2015-11-23

3,694 reads

Blogs

Who Are You Doing It For?

By

But as I've matured over the years, I came to realize that I needed...

Presenting Twice in May 2026

By

I will be presenting my latest session, Documenting Your Work for Worry-Free Vacations, in-person...

Finding the Next Sequence Value: #SQLNewBlogger

By

I saw a question asking about the next sequence value and decided to try...

Read the latest Blogs

Forums

DB Design Methods

By mjdemaris

I've read a few posts regarding what we use to design DB models and...

Auto Update Statistics not triggering on filtered indexes

By Leo.Miller

I've got a table with 186,703,969 rows, about 300GB of data. There are several...

What is the difference between SQL Server and SQL Database?

By kamiiteore

I created a SQL Database in Azure Portal but I've just noticed it also...

Visit the forum

Question of the Day

An Unusual Identity

What values are returned when I run this code?

CREATE TABLE dbo.IdentityTest2
(
     id NUMERIC(10,0) IDENTITY(10,10) PRIMARY KEY,
     somevalue VARCHAR(20)
)
GO
INSERT dbo.IdentityTest2
(
    somevalue
)
VALUES
( 'Steve')
, ('Bill')
GO
SELECT top 10
 id
 FROM dbo.IdentityTest2

See possible answers