如何用 SQL 语句获取某个 ACCESS 表占用的磁盘空间大小?
来源:互联网 发布:linux从入门到精通ppt 编辑:程序博客网 时间:2024/05/21 14:50
如何用 SQL 语句获取某个 ACCESS 表占用的磁盘空间大小?
作者:cg1 摘自:access911.net 编辑:cg1 更新日期:2006-2-24 浏览人次:47
专题地址:
http://access911.net/?kbid;72FAB11E1BDCEEF3
简述:
如何用 SQL 语句获取某个 ACCESS 表占用的磁盘空间大小?《查询》
阅读前需掌握:
熟练掌握 VBA 编程
难度等级:
200
问题:
这个表可能包括ole字段??如何做呢?
能否把所有的字段都先len再sum然后得到大小呢?
在 SQL SERVER 2000 中可以用 sp_spaceused 编程获得
exec sp_MSForEachTable
@precommand=N'
create table ##(
id int identity,
表名 sysname,
字段数 int,
记录数 int,
保留空间 Nvarchar(10),
使用空间 varchar(10),
索引使用空间 varchar(10),
未用空间 varchar(10))',
@command1=N'insert ##(表名,记录数,保留空间,使用空间,索引使用空间,未用空间) exec sp_spaceused ''?''
update ## set 字段数=(select count(*) from syscolumns where id=object_id(''?'')) where id=scope_identity()',
@postcommand=N'select * from ## order by id drop table ##'
access 如何完成?
回答:
在 ACCESS 永远只计算 MDB 的大小,不计算表的大小。但是你可以通过判断每个表的字段类型以及记录数估算出大小,或者干脆将单个表导出到一个新的 MDB 来估算大小。
如果你只是为了得到 OLE 大小,可以用
select sum(lenB(b)) as 总OLE大小 from table_name
关于直接通过 LEN 和 SUM 来获取数据大小是一个思路,但是不能直接完成,因为 LEN 可能对 TEXT 和 OLE对象 字段有效,但是对数字等字段无效,你必须另外编程通过判断数字字段的字段类型来判断其数据占用的空间。而且是估算 ACCESS 中数据的大小,而不是占用磁盘空间的大小。即使你估算了所有的表的数据量大小,加总后还是不等于 MDB 的实际占用磁盘空间大小,因为还有系统表、临时表、表的自定义属性会占用额外的空间,而且有了自定义属性后占用的空间是不确定的。当然,如果你要彻底判断所有这些情况不是不可以,只是非常麻烦而已,要编写很多程序,并且用到 JET SQL / ADO / DAO / ADOX 才能判断。
access911.net 原创文章,作者本人对文章保留一切权利。
如需转载必须征得作者同意并注明本站链接
适用环境:
Access 2000Access XP
Access 2003
关键字:
磁盘空间,占用 >>>- 如何用 SQL 语句获取某个 ACCESS 表占用的磁盘空间大小?
- 查看mysql中database占用磁盘空间的大小SQL语句
- Access中如何用 Jet SQL 语句删除表关系?
- Access中如何用 Jet SQL 语句删除表关系?
- du查看某个文件或目录占用磁盘空间的大小
- 如何用SQL查询语句获取Oracle表 树形结构的记录(PL/SQL )
- 如何用SQL语句获取Oracle表结构
- 如何用ACCESS的设计视图得到ACCESS中的sql语句?
- db2中获取某个表/索引占用空间的大小
- db2中获取某个表/索引占用空间的大小
- db2中获取某个表/索引占用空间的大小
- ORACLE中如何用一条SQL语句删除一个表中所有某个列的值为空的数据?
- 如何用SQL语句获取Oracle指定表的表结构
- 如何用SQL语句替换字段中的某个字符
- dede如何用SQL语句统计某个栏目的文章总数?
- 查看某个表被谁占用的SQL语句
- 在ACCESS中如何用sql语句建立删除表关系?
- 如何用SQL语句把同一列的数据按某个group by语句组合成一行数据
- DELPHI真的没落了吗?
- 疯狂指针(0)
- Hibernate 2 升级为Hibernate 3 的注意事项 [转]
- access911.net服务器内存升级到4G时学到的知识(BIOS显示4G,进WINDOWS却只认出3.5G)
- XMLHTTP异步获取返回值的代码超时测试(AJAX)
- 如何用 SQL 语句获取某个 ACCESS 表占用的磁盘空间大小?
- 以后再回头看一下.
- 区分方法重载与基本数据类型的转换
- 静态方法中调用非静态方法
- 返回值类型的不同不能作为区分重载的途径
- 廉价的快乐
- VS2005.NET2.0学习视频_5_Wizard控件一步步提交表单
- 疯狂指针(1)
- 类的访问控制权限讨论