实际应用中我们经常会遇到这样错误:某张表再次扩展时表空间没有足够大的空块,结果无法扩展。
我想写段脚本,用以定期检查将要扩展的表的所用的表空间是否有足够大的块。分解为两个问题:
1、如何知道指定表是否将要再次扩展了,从哪个系统表中知道。最好是不需要dba权限。
2、检查指定的表空间是否有足够大的空块。这个问题已解决:
SELECT COUNT(*) INTO ln_cnt FROM user_free_space WHERE tablespace_name='XXXX' AND bytes>YYYY;第一个问题如何解决呢?
我想写段脚本,用以定期检查将要扩展的表的所用的表空间是否有足够大的块。分解为两个问题:
1、如何知道指定表是否将要再次扩展了,从哪个系统表中知道。最好是不需要dba权限。
2、检查指定的表空间是否有足够大的空块。这个问题已解决:
SELECT COUNT(*) INTO ln_cnt FROM user_free_space WHERE tablespace_name='XXXX' AND bytes>YYYY;第一个问题如何解决呢?
解决方案 »
- 如何判断oracle的读写状态是否正常?
- 自动关于自动ROLLBACK和COMMIT的问题!
- 请教高手:表连接出现笛卡尔积,执行速度太慢的问题
- Oracle高难度语句求助
- Oracle层次化查询问题
- 如何捕获一条记录的update语句
- 痛苦啊,俺的win2k一启动到进度条将要结束就马上出现:Stop:c000026c unkonw hard error!!
- 今天我们上机了,用的是oracle
- 在ORACLE中两个SQL或两个以上语句如何写呀?
- 在oracle9i中如何看到我插入的记录?
- ORACLE9i 建表问题
- 请教!关于Oracle 9.2.0.1.0企业版 允许同时连接的 “许可认证”?
user_extents-->blocksif user_tables.blocks 接近 sum(user_extents.blocks)说明表即将扩展
FROM (SELECT TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2) SPACE,SUM(BLOCKS) BLOCKS FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME) D,
(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2) FREE_SPACE FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) F
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)