Database Research & Development

  • Home
  • NoSQL
    • NoSQL
    • Cassandra
  • Databases
    • Database Theory
    • Database Designing
    • SQL Server Coding Standards
    • SQL Server
    • PostgreSQL
    • MySQL
    • Greenplum
    • Linux
  • Interviews
    • SQL Server Interviews
    • MySQL Interviews
    • SQL Puzzles
  • DBA Scripts
    • SQL Server DBA Scripts
    • PostgreSQL DBA Scripts
    • MySQL DBA Scripts
    • Greenplum DBA Scripts
  • Home
  • Blog Archives !
  • (: Laugh@dbrnd :)
  • Contact Me !
sqlserverinterviews
Home 2018 February SQL Server: After Dropping a Column, Rebuild the table and get the Space

SQL Server: After Dropping a Column, Rebuild the table and get the Space

Database Space Recovery

This article is half-done without your Comment! *** Please share your thoughts via Comment ***

In this post, I am sharing a demonstration on how to recover the occupied space by a SQL Server table, after dropping a big size of the column.

Many times, we are getting a request like “No Space in Development Server”. Developers are testing their code and design so they are dropping and creating columns in tables.
But after this, we should refresh the table by rebuilding their indexes.

Please check the below full demonstration on this, and try it yourself:

Create a table with sample data:

1
2
3
4
5
6
7
CREATE TABLE tbl_TableSize (ID BIGINT, Name CHAR(2000), CONSTRAINT pk_Id PRIMARY KEY(ID))
GO
 
INSERT INTO tbl_TableSize VALUES
(1,'Anvesh'),(2,'Roy'),(3,'Jenny')
,(4,'Martin'),(5,'Neevan'),(6,'Nupur')
GO

Check the average taken space of a table:

1
2
3
4
5
6
7
8
9
10
SELECT
page_count
,avg_page_space_used_in_percent
FROM sys.dm_db_index_physical_stats(db_id('db_name'), object_id('tbl_TableSize'), NULL, NULL , 'Detailed')
 
--Result:
page_count avg_page_space_used_in_percent
-------------------- ------------------------------
2 74.7343711391154
1 0.395354583642204

Now, Drop a CHAR column:

1
2
ALTER TABLE tbl_TableSize DROP COLUMN Name
GO

Now check the size again:
No difference found!

1
2
3
4
5
6
7
8
9
10
SELECT
page_count
,avg_page_space_used_in_percent
FROM sys.dm_db_index_physical_stats(db_id('test'), object_id('tbl_TableSize'), NULL, NULL , 'Detailed')
 
--Result:
page_count avg_page_space_used_in_percent
-------------------- ------------------------------
2 74.7343711391154
1 0.395354583642204

Now, Rebuild the clustered index:

1
2
ALTER INDEX pk_Id ON tbl_TableSize REBUILD
GO

Check the size again:
Now, you can see the huge difference in the table size, and occupied space by dropped column has been recovered.

1
2
3
4
5
6
7
8
9
SELECT
page_count
,avg_page_space_used_in_percent
FROM sys.dm_db_index_physical_stats(db_id('test'), object_id('tbl_TableSize'), NULL, NULL , 'Detailed')
 
--Result:
page_count avg_page_space_used_in_percent
-------------------- ------------------------------
1 1.23548307388189

Feb 27, 2018Anvesh Patel
SQL Puzzle: SQL Advance Query – Find last SET of String after Specific characterSQL Server: Script to find the list of Startup Procedures

Leave a Reply Cancel reply

CAPTCHA
Refresh

*

Anvesh Patel
Anvesh Patel

Database Engineer

ImageFebruary 27, 2018 SQL ServerAnvesh Patel, database, database research and development, dbrnd, Rebuild Index, REBUILD TABLE, Refresh Table, SQL Query, SQL Server, SQL Server Administrator, SQL Server Error, SQL Server Monitoring, SQL Server Performance Tuning, SQL Server Programming, SQL Server Tips and Tricks, TSQL
About Me!

I'm Anvesh Patel, a Database Engineer certified by Oracle and IBM. I'm working as a Database Architect, Database Optimizer, Database Administrator, Database Developer. Providing the best articles and solutions for different problems in the best manner through my blogs is my passion. I have more than six years of experience with various RDBMS products like MSSQL Server, PostgreSQL, MySQL, Greenplum and currently learning and doing research on BIGData and NoSQL technology. -- Hyderabad, India.

About DBRND !

dbrnd

This is a personal blog (www.dbrnd.com).

Any views or opinions represented in this blog are personal and belong solely to the blog owner and do not represent those of people, institutions or organizations that the owner may or may not be associated with in professional or personal capacity, unless explicitly stated.

Feel free to challenge me, disagree with me, or tell me I’m completely nuts in the comments section of each blog entry, but I reserve the right to delete any comment for any reason whatsoever (abusive, profane, rude, or anonymous comments) - so keep it polite.

The content of this website is protected by copyright. No portion of this website may be copied or replicated in any form without the written consent of the website owner.

Recent Comments !
  • Anvesh Patel { Sure will do... } – May 27, 12:43 PM
  • Anvesh Patel { Great... } – May 27, 12:41 PM
  • Anvesh Patel { Great... } – May 27, 12:39 PM
  • Anvesh Patel { Great... } – May 27, 12:36 PM
  • Anvesh Patel { Great... } – May 27, 12:28 PM
  • Anvesh Patel { Great... } – May 27, 12:27 PM
  • Anvesh Patel { Great... } – May 27, 12:16 PM
  • Older »
Follow Me !
  • facebook
  • linkedin
  • twitter
  • youtube
  • google
  • flickr
© 2015 – 2019 All rights reserved. Database Research & Development (dbrnd.com)
Posting....