因经常需要处理大数量的表,因此查看表结构、数据量、以及索引情况基本上成为了常态,无奈生产环境的数据库不让我们直接访问,因此想要了解到生产环境的数据库的表结构和索引信息变得很麻烦需要经常找DBA帮忙找,而想查看具体某个表的数据量使用 select count(1) from table方法的效率实在慢的无法忍受,正所谓求人不如求己,花了点时间自己做了个查看数据库表结构和索引的小工具顺便温习了下系统表一举两得,喜欢的朋友可以拿去用用。
工具功能很简单但胜在实用(尤其是不让开发人员用企业管理连接生产环境数据库时,简直是一大杀器),可以提高不少效率
1.根据链接字符串列出服务器上所有的数据库以及表。
2.查看表的记录数、字段及索引(包含覆盖索引)信息。
默认界面如下
根据需要修改好数据连接串,点击 链接 自动查询出数据库信息
双击数据库加载所有的表并读取表的记录数(表名后面括号里的数字代表记录数)
双击表名称加载表的结构和索引信息
这里对列表字段做个简单翻译,以帮助英语不好的童鞋
ColumnName | ColumnType | ByteLength | CharLength | Scale | IsIdentity | IsNullable | Remark |
字段名称 | 字段类型 | 字节长度 | 字符长度 | 小数位数 | 是否自增列 | 是否允许空 | 字段说明 |
IndexName | IndexType | IsPrimaryKey | IsUnique | IsUniqueConstraint | IndexColumns | IndexIncludeColumns |
索引名称 | 索引类型 | 是否主键 | 是否唯一 | 是否唯一约束 | 索引包含的列 | 覆盖索引包含的列 |
表结构里的Remark字段说明就是我们给列加的那个列说明,ByteLength是字段的字节长度,CharLength是字符长度,这两个主要是针对nchar,nvarchar类型的在数据库中比如定义 Name nvarchar(50),显示的字节长度是100,字符长度才是50(nvarchar一个字符占两个字节),不注意的话会很惨,曾经被这个玩意给害死(喜欢使用alt+F1 查看表结构信息,这时nvarchar(50)的字段类型会显示长度为 100)
表索引里面IndexColumns表示索引所包含的列,IndexIncludeColumns表示覆盖索引所包含的列,比如:索引IX_Test1,IndexColumns为Name,Email,IndexIncludeColumns为Address,PostCode,覆盖索引只能建立在非聚簇索引上,主要是为了解决书签查找(RID、键查找),聚簇索引不存在书签查找所以不能创建覆盖索引,在此不再详述
create index IX_Test1 on Users(Name,Email) include(Address,PostCode)
恩,功能就这么简单,利用好了能在工作中省下不少事情,贴一下主要代码
附上源码下载:SqlQueryAnalyzer.rar
release目录下为已经编译好的程序SqlQueryAnalyzer.exe可以直接打开使用,src目录为源码
注:此文章属懒惰的肥兔原创,版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过lzrabbit@126.com联系我,非常感谢。