To check for corruption on a large, busy database I was able to use my filegroup checking script on all but one filegroup.
To polish off the final (monster) filegroup, I resorted to creating a database-snapshot (in the morning) and running this (checktable) script during the day.
btw: Whilst I realise checking a database-snapshot is of limited use, I reasoned it was better than the only alternative (not checking).
Before leaving work I would review the results and drop the snapshot (for application optimization), in rediness to create a fresh one (and continue) the next day.
--CheckTablesInAFilegroup_vldb.sql use TheSnapshotName go -- capture table-names from the named filegroup - once begin try select o.name into master.dbo.fgtables from sys.indexes i join sys.filegroups f on i.data_space_id = f.data_space_id join sys.all_objects o on i.object_id = o.object_id where f.name = 'somefilegroupname' order by o.name end try -- check tables one-by-one begin catch declare @sql varchar(200) while (select count(*) from master.dbo.fgtables) > 0 begin select top 1 @sql = 'dbcc checktable ("dbo.' + name + '")' from master.dbo.fgtables order by name exec(@sql) delete from master.dbo.fgtables where name = (select top 1 name from master.dbo.fgtables order by name) end end catch