|
|
|
Say Hey Kid
      
Group: General Forum Members
Last Login: Wednesday, May 01, 2013 5:17 PM
Points: 701,
Visits: 207
|
|
|
|
|
|
Forum Newbie
      
Group: General Forum Members
Last Login: Monday, November 09, 2009 4:57 AM
Points: 2,
Visits: 38
|
|
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
|
|
|
|
|
SSC-Enthusiastic
      
Group: General Forum Members
Last Login: Wednesday, January 26, 2011 1:32 PM
Points: 146,
Visits: 327
|
|
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
|
|
|
|
|
Say Hey Kid
      
Group: General Forum Members
Last Login: Wednesday, May 01, 2013 5:17 PM
Points: 701,
Visits: 207
|
|
I submitted 'The Ultimate Table Searcher Mk2' that adds PartitionCount, IndexCount, ColumnCount, TotalMaxColumnLength, HasPrimaryKey, and HasClusteredIndex.
|
|
|
|
|
SSC-Enthusiastic
      
Group: General Forum Members
Last Login: Wednesday, January 26, 2011 1:32 PM
Points: 146,
Visits: 327
|
|
YeshuaAgapao ,
Good Deal - did you fix my mistake - count( index_id) As Indicies should be (COUNT( index_id ) - 1 ) As Indicies.
Best, Doug
|
|
|
|
|
SSC-Enthusiastic
      
Group: General Forum Members
Last Login: Wednesday, January 26, 2011 1:32 PM
Points: 146,
Visits: 327
|
|
Jesse,
Nice change to the program.
Doug
|
|
|
|