public TableSizes GetTableSizes(DbConnection conn, LinkedDatabaseInfo linkedInfo) { var res = new TableSizes(); using (var cmd = conn.CreateCommand()) { cmd.CommandText = "show table status"; using (var reader = cmd.ExecuteReader()) { while (reader.Read()) { string table = reader.SafeString("Name"); string engine = reader.SafeString("Engine"); var resItem = new TableSizesItem { RowCount = reader.SafeString("Rows").SafeIntParse(), DataLengthKB = reader.SafeString("Data_length").SafeIntParse() / 1024, IndexLengthKB = reader.SafeString("Index_length").SafeIntParse() / 1024, }; resItem.TotalSpaceKB = resItem.IndexLengthKB + resItem.DataLengthKB; res.Items[new NameWithSchema(null, table)] = resItem; } } } return(res); }
public TableSizes GetTableSizes(DbConnection conn, LinkedDatabaseInfo linkedInfo) { var res = new TableSizes(); using (var cmd = conn.CreateCommand()) { cmd.CommandText = SqlServerLinkedServer.ReplaceLinkedServer(SqlServerDatabaseFactory.LoadEmbeddedResource("tablesizes.sql"), linkedInfo); using (var reader = cmd.ExecuteReader()) { while (reader.Read()) { string table = reader.SafeString("Table"); string schema = reader.SafeString("Schema"); var resItem = new TableSizesItem { RowCount = Int32.Parse(reader.SafeString("RowCount") ?? "0"), TotalSpaceKB = Int32.Parse(reader.SafeString("TotalSpaceKB") ?? "0"), UsedSpaceKB = Int32.Parse(reader.SafeString("UsedSpaceKB") ?? "0"), UnusedSpaceKB = Int32.Parse(reader.SafeString("UnusedSpaceKB") ?? "0"), }; res.Items[new NameWithSchema(schema, table)] = resItem; } } } return(res); }