The Ultimate Table Searcher

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

  • 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

  • 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

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

  • YeshuaAgapao ,

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

    Best,

    Doug

  • Jesse,

    Nice change to the program.

    Doug

  • 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