Best way to do mass delete of records MSsql server 2005 coldfusion

I want to migrate a database but reduce it first it is 10.5GB  I have a lot of old statistics  records that will reduce this right down. The database is online with customers, CF9. I ran a query from a template but it seems to bring down cold fusion. I have millions of rows to delete. What is the best way?  Thanks. I am not a system engineer - more of a novice in this area.
Ian WhiteOwner and FounderAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

gdemariaCommented:
If you want to empty a table completely, you can enter  
> truncate table BigTableName

That will remove all records.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Jim HornMicrosoft SQL Server Developer, Architect, and AuthorCommented:
Truncate is correct, assuming there's not an identity column that would cause problems if it was re-seeded back to the start (usually 1).

so I'll throw in some other stuff:
*  Do you have this data backed up somewhere, in case you need to un-delete it?
*  Do you have a scheduled outage where you can delete without having to worry about users being in the app mid-deletion?
*  Anything else needs to happen with this delete, such as delete related tables?  If yes, a TRANSACTION is an excellent idea.
0
Ian WhiteOwner and FounderAuthor Commented:
No dont want to empty completely


<CFMODULE TEMPLATE="getdatasource.cfm">
<CFMODULE TEMPLATE='getnewdate.cfm' Days=360>

    <cfquery name="Delete_Old_VisitorStatistics"
				datasource="housecare2" 
				dbtype="ODBC" >
  DELETE FROM VisitorStatistics
    		
    	WHERE
  		VisitorStatistics.VisitDate  < #NewDate# 
	
  </cfquery>

Open in new window

0
Cloud Class® Course: CompTIA Healthcare IT Tech

This course will help prep you to earn the CompTIA Healthcare IT Technician certification showing that you have the knowledge and skills needed to succeed in installing, managing, and troubleshooting IT systems in medical and clinical settings.

Jim HornMicrosoft SQL Server Developer, Architect, and AuthorCommented:
>No dont want to empty completely
Then DELETE is your only option, as only DELETE supports a WHERE clause where you can delete a subset of rows.
0
Ian WhiteOwner and FounderAuthor Commented:
NO related tables
Yes database backed up nightly
non critical table - rarely accessed by users online
It is written to and records visitors to the site looking at members records
0
Ian WhiteOwner and FounderAuthor Commented:
no schedule outage - but could put message in application.cfm that database is being maintained
0
Ian WhiteOwner and FounderAuthor Commented:
I could bit the bullet and empty the statistics table - it will rebuild

I have another large table notifications that is more critical that will need the where

How long would the truncate take?

I do this in the sql studio? what would be the code to truncate?
0
gdemariaCommented:
Before attempting the delete, you can add an index to the column in the where clause to try and speed it up

VisitDate  

Alternatively, you could come up with a strategy to move date that you want to keep into a warehouse or archive tables (perhaps in a different database with simple backup strategy).   Once desired records are copied off (using insert from select) then you can truncate the table.   I do this on a weekly basis to keep high er level stats where the details are no longer important
0
Ian WhiteOwner and FounderAuthor Commented:
After the records are gone - does the db auto be a smaller size for the backup? - or does something have to be done - the backup is 10.5 gb - took big to restore zip then ftp. Currently take hours to restore from the nightly backup by the current host
0
gdemariaCommented:
in SQL Server Management Studio, right click the database and choose to Shrink File and you can shrink the database file down.
0
Ian WhiteOwner and FounderAuthor Commented:
Thanks that was easy in studio , now just need to check with hosting engineers how to shrink without impacting users - does not appear to be much free space
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
ColdFusion Language

From novice to tech pro — start learning today.