August 5, 2008 at 11:16 am
Comments posted to this topic are about the item The Ultimate Table Searcher
October 30, 2008 at 4:56 am
Great article. It (along with other "Searcher" articles by Jesse) addresses one of the biggest problems faced by developers as to how to search metadata. One issue that I see here is that it is only for SQL Server 2005+ and will fail in SQL 2000 as it makes use of sys.schemas table which is introduced in SQL 2005.
I would also recommend readers to try out search functionality in Omega.MSSQL (http://omega.cerebrata.com/r=SSCC63929), a browser based SQL server explorer developed by my company. Essentially you can search for keywords in tables (including columns, keys, triggers, indexes), views, stored procedures and all other objects just by using a browser based interface.
Do check it out.
Thanks
Gaurav
October 30, 2008 at 6:44 am
Jesse,
Another great article.
You could make one little add to this - return the number of Indicies for the table by adding
COUNT( index_id ) As Indicies,
to your inner join where you create partitions.
Here is my ammended code to list all tables alphabetically:
SELECT sys.objects.name AS TableName,
partitions.Rows, partitions.SizeMB, partitions.Indicies, partitions.SizeMBIndexes, sys.schemas.name AS owner, sys.objects.object_id
INTO dbo.DDTables
FROM sys.objects
INNER JOIN sys.schemas ON sys.objects.schema_id=sys.schemas.schema_id
INNER JOIN (
SELECT object_id, SUM(row_count) AS Rows, count( index_id) As Indicies,
CONVERT(numeric(19,3), CONVERT(numeric(19,3), SUM(CASE WHEN index_id BETWEEN 0 AND 1 THEN in_row_reserved_page_count+lob_reserved_page_count+row_overflow_reserved_page_count ELSE 0 END))/CONVERT(numeric(19,3), 128)) AS SizeMB,
CONVERT(numeric(19,3), CONVERT(numeric(19,3), SUM(CASE WHEN index_id>1 THEN in_row_reserved_page_count+lob_reserved_page_count+row_overflow_reserved_page_count ELSE 0 END))/CONVERT(numeric(19,3), 128)) AS SizeMBIndexes
FROM sys.dm_db_partition_stats
GROUP BY object_id
) AS partitions ON sys.objects.object_id=partitions.object_id
WHERE sys.objects.type='u'
ORDER BY sys.objects.name
November 4, 2008 at 4:07 pm
I submitted 'The Ultimate Table Searcher Mk2' that adds PartitionCount, IndexCount, ColumnCount, TotalMaxColumnLength, HasPrimaryKey, and HasClusteredIndex.
November 5, 2008 at 8:01 am
YeshuaAgapao ,
Good Deal - did you fix my mistake - count( index_id) As Indicies should be (COUNT( index_id ) - 1 ) As Indicies.
Best,
Doug
November 5, 2008 at 8:12 am
Jesse,
Nice change to the program.
Doug
May 23, 2016 at 4:54 pm
Thanks for the script. You've got a lot.
Viewing 7 posts - 1 through 6 (of 6 total)
You must be logged in to reply to this topic. Login to reply