The Ultimate Table Searcher

  • YeshuaAgapao

    Hall of Fame

    Points: 3495

    Comments posted to this topic are about the item The Ultimate Table Searcher

  • gaurav-628507

    SSC Journeyman

    Points: 76

    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

    http://omega.cerebrata.com

  • Douglas Osborne-456728

    SSCommitted

    Points: 1569

    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

  • YeshuaAgapao

    Hall of Fame

    Points: 3495

    I submitted 'The Ultimate Table Searcher Mk2' that adds PartitionCount, IndexCount, ColumnCount, TotalMaxColumnLength, HasPrimaryKey, and HasClusteredIndex.

  • Douglas Osborne-456728

    SSCommitted

    Points: 1569

    YeshuaAgapao ,

    Good Deal - did you fix my mistake - count( index_id) As Indicies should be (COUNT( index_id ) - 1 ) As Indicies.

    Best,

    Doug

  • Douglas Osborne-456728

    SSCommitted

    Points: 1569

    Jesse,

    Nice change to the program.

    Doug

  • akljfhnlaflkj

    SSC Guru

    Points: 76202

    Thanks for the script. You've got a lot.

Viewing 7 posts - 1 through 7 (of 7 total)

You must be logged in to reply to this topic. Login to reply