Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Q&A

Welcome to Software Development on Codidact!

Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.

Post History

60%
+1 −0
Q&A How can I can I reduce the size of a SQL Server database after being restored and massive embedded files stripped?

One way to solve this is to shrink the database and reindex all tables to fix the indexes fragmentation: DBCC SHRINKDATABASE (TheDatabase); GO -- reindexing all tables to optimize performance ...

posted 3y ago by Alexei‭

Answer
#1: Initial revision by user avatar Alexei‭ · 2020-11-05T19:58:46Z (over 3 years ago)
One way to solve this is to shrink the database and reindex all tables [to fix the indexes fragmentation](https://www.brentozar.com/archive/2009/08/stop-shrinking-your-database-files-seriously-now/): 

	DBCC SHRINKDATABASE (TheDatabase);
	GO

	-- reindexing all tables to optimize performance after the DB shrink
	declare @TableSchema varchar(255)
	DECLARE @TableName varchar(255) 
	 
	DECLARE TableCursor CURSOR FOR
	SELECT TABLE_SCHEMA, table_name FROM INFORMATION_SCHEMA.TABLES 
	WHERE table_type = 'BASE TABLE' 
	 
	OPEN TableCursor 
	FETCH NEXT FROM TableCursor INTO @TableSchema, @TableName 
	WHILE @@FETCH_STATUS = 0 
	BEGIN
		declare @TN varchar(255) = @TableSchema + '.' + @TableName
		print 'Reindexing ' + @TN
		DBCC DBREINDEX(@TN,' ',90) 
		FETCH NEXT FROM TableCursor INTO @TableSchema, @TableName 
	END
	 
	CLOSE TableCursor 
	DEALLOCATE TableCursor
	GO

I am not sure if there are any side effects after performing this.