示例#1
0
        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);
        }
示例#2
0
        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);
        }