10 个解决方案
#1
EXECUTE DBMS_UTILITY.ANALYZE_DATABASE('COMPUTE');
SELECT OWNER, TABLE_NAME, NUM_ROWS FROM ALL_TABLES;
SELECT OWNER, TABLE_NAME, NUM_ROWS FROM ALL_TABLES;
#2
EXECUTE DBMS_UTILITY.ANALYZE_DATABASE('COMPUTE');
SELECT OWNER, TABLE_NAME, NUM_ROWS FROM ALL_TABLES;
===========================
oldwain
---------------------------
http://www.itpub.net/index.php?referrerid=32
http://www.linuxforum.net/
http://www.oraclefan.net/
SELECT OWNER, TABLE_NAME, NUM_ROWS FROM ALL_TABLES;
===========================
oldwain
---------------------------
http://www.itpub.net/index.php?referrerid=32
http://www.linuxforum.net/
http://www.oraclefan.net/
#3
oldwain(老斗):请问
EXECUTE DBMS_UTILITY.ANALYZE_DATABASE('COMPUTE');
SELECT OWNER, TABLE_NAME, NUM_ROWS FROM ALL_TABLES;
这两句话如何在SQL*PLUS里用语句一次实验啊?
EXECUTE DBMS_UTILITY.ANALYZE_DATABASE('COMPUTE');
SELECT OWNER, TABLE_NAME, NUM_ROWS FROM ALL_TABLES;
这两句话如何在SQL*PLUS里用语句一次实验啊?
#4
"一次实验"? 什么意思?
#5
oldwain(老斗):
EXECUTE DBMS_UTILITY.ANALYZE_DATABASE('COMPUTE');
单独执行报错,
SELECT OWNER, TABLE_NAME, NUM_ROWS FROM ALL_TABLES;
这两句话是否应编成一个小函数,在SQL*PLUS里用作为一个整体执行啊?
如果是,这段函数怎么写?
EXECUTE DBMS_UTILITY.ANALYZE_DATABASE('COMPUTE');
单独执行报错,
SELECT OWNER, TABLE_NAME, NUM_ROWS FROM ALL_TABLES;
这两句话是否应编成一个小函数,在SQL*PLUS里用作为一个整体执行啊?
如果是,这段函数怎么写?
#6
执行EXECUTE DBMS_UTILITY.ANALYZE_DATABASE('COMPUTE');
报错如下:
BEGIN DBMS_UTILITY.ANALYZE_DATABASE('COMPUTE'); END;
*
エラー行: 1: エラーが発生しました。
ORA-20000: You have insufficient privileges for an object in this database.
ORA-06512: at "SYS.DBMS_UTILITY", line 360
ORA-06512: at line 1
报错如下:
BEGIN DBMS_UTILITY.ANALYZE_DATABASE('COMPUTE'); END;
*
エラー行: 1: エラーが発生しました。
ORA-20000: You have insufficient privileges for an object in this database.
ORA-06512: at "SYS.DBMS_UTILITY", line 360
ORA-06512: at line 1
#7
学习!!
#8
http://www.csdn.net/Expert/Topic/480/480749.shtm
http://www.csdn.net/Expert/TopicView.asp?id=483248
http://www.csdn.net/Expert/TopicView.asp?id=483248
#9
KingSunSha(弱水三千):能与我联系吗?
你给我的两个地址我都看啦。
是不是需要analyze的方法不大精确啊?
我想知道精确的存储过程方法。
能告诉我怎么实现吗?
hareljx@263.net
非常感谢
你给我的两个地址我都看啦。
是不是需要analyze的方法不大精确啊?
我想知道精确的存储过程方法。
能告诉我怎么实现吗?
hareljx@263.net
非常感谢
#10
如果你的用户没有dba权限, 并且只想查看本用户的所有表的记录数(注意: 不是你说的"库中的所有表"), 改为:
EXECUTE DBMS_UTILITY.ANALYZE_SCHEMA('MYUSERNAME', 'COMPUTE');
SELECT OWNER, TABLE_NAME, NUM_ROWS FROM USER_TABLES;
注意: MYUSERNAME是你的用户名, 用大写.
之所以不把它做成一个函数, 是因为在数据量大时, ANALYZE是个很耗时的工作. 如果不是必须要求精确数字, 第二次及以后的统计可以使用前面的ANALYZE结果.
另一种方法:
SET ECHO OFF
SET HEAD OFF
SET LINESIZE 200
SET PAGESIZE 0
select 'SELECT ''' || TNAME || ''' TABNAME, COUNT(1) FROM ' || TNAME || ';' FROM TAB;
SPOOL C:\COUNTALL.SQL
/
SPOOL OFF
然后执行生成的COUNTALL.SQL
EXECUTE DBMS_UTILITY.ANALYZE_SCHEMA('MYUSERNAME', 'COMPUTE');
SELECT OWNER, TABLE_NAME, NUM_ROWS FROM USER_TABLES;
注意: MYUSERNAME是你的用户名, 用大写.
之所以不把它做成一个函数, 是因为在数据量大时, ANALYZE是个很耗时的工作. 如果不是必须要求精确数字, 第二次及以后的统计可以使用前面的ANALYZE结果.
另一种方法:
SET ECHO OFF
SET HEAD OFF
SET LINESIZE 200
SET PAGESIZE 0
select 'SELECT ''' || TNAME || ''' TABNAME, COUNT(1) FROM ' || TNAME || ';' FROM TAB;
SPOOL C:\COUNTALL.SQL
/
SPOOL OFF
然后执行生成的COUNTALL.SQL
#1
EXECUTE DBMS_UTILITY.ANALYZE_DATABASE('COMPUTE');
SELECT OWNER, TABLE_NAME, NUM_ROWS FROM ALL_TABLES;
SELECT OWNER, TABLE_NAME, NUM_ROWS FROM ALL_TABLES;
#2
EXECUTE DBMS_UTILITY.ANALYZE_DATABASE('COMPUTE');
SELECT OWNER, TABLE_NAME, NUM_ROWS FROM ALL_TABLES;
===========================
oldwain
---------------------------
http://www.itpub.net/index.php?referrerid=32
http://www.linuxforum.net/
http://www.oraclefan.net/
SELECT OWNER, TABLE_NAME, NUM_ROWS FROM ALL_TABLES;
===========================
oldwain
---------------------------
http://www.itpub.net/index.php?referrerid=32
http://www.linuxforum.net/
http://www.oraclefan.net/
#3
oldwain(老斗):请问
EXECUTE DBMS_UTILITY.ANALYZE_DATABASE('COMPUTE');
SELECT OWNER, TABLE_NAME, NUM_ROWS FROM ALL_TABLES;
这两句话如何在SQL*PLUS里用语句一次实验啊?
EXECUTE DBMS_UTILITY.ANALYZE_DATABASE('COMPUTE');
SELECT OWNER, TABLE_NAME, NUM_ROWS FROM ALL_TABLES;
这两句话如何在SQL*PLUS里用语句一次实验啊?
#4
"一次实验"? 什么意思?
#5
oldwain(老斗):
EXECUTE DBMS_UTILITY.ANALYZE_DATABASE('COMPUTE');
单独执行报错,
SELECT OWNER, TABLE_NAME, NUM_ROWS FROM ALL_TABLES;
这两句话是否应编成一个小函数,在SQL*PLUS里用作为一个整体执行啊?
如果是,这段函数怎么写?
EXECUTE DBMS_UTILITY.ANALYZE_DATABASE('COMPUTE');
单独执行报错,
SELECT OWNER, TABLE_NAME, NUM_ROWS FROM ALL_TABLES;
这两句话是否应编成一个小函数,在SQL*PLUS里用作为一个整体执行啊?
如果是,这段函数怎么写?
#6
执行EXECUTE DBMS_UTILITY.ANALYZE_DATABASE('COMPUTE');
报错如下:
BEGIN DBMS_UTILITY.ANALYZE_DATABASE('COMPUTE'); END;
*
エラー行: 1: エラーが発生しました。
ORA-20000: You have insufficient privileges for an object in this database.
ORA-06512: at "SYS.DBMS_UTILITY", line 360
ORA-06512: at line 1
报错如下:
BEGIN DBMS_UTILITY.ANALYZE_DATABASE('COMPUTE'); END;
*
エラー行: 1: エラーが発生しました。
ORA-20000: You have insufficient privileges for an object in this database.
ORA-06512: at "SYS.DBMS_UTILITY", line 360
ORA-06512: at line 1
#7
学习!!
#8
http://www.csdn.net/Expert/Topic/480/480749.shtm
http://www.csdn.net/Expert/TopicView.asp?id=483248
http://www.csdn.net/Expert/TopicView.asp?id=483248
#9
KingSunSha(弱水三千):能与我联系吗?
你给我的两个地址我都看啦。
是不是需要analyze的方法不大精确啊?
我想知道精确的存储过程方法。
能告诉我怎么实现吗?
hareljx@263.net
非常感谢
你给我的两个地址我都看啦。
是不是需要analyze的方法不大精确啊?
我想知道精确的存储过程方法。
能告诉我怎么实现吗?
hareljx@263.net
非常感谢
#10
如果你的用户没有dba权限, 并且只想查看本用户的所有表的记录数(注意: 不是你说的"库中的所有表"), 改为:
EXECUTE DBMS_UTILITY.ANALYZE_SCHEMA('MYUSERNAME', 'COMPUTE');
SELECT OWNER, TABLE_NAME, NUM_ROWS FROM USER_TABLES;
注意: MYUSERNAME是你的用户名, 用大写.
之所以不把它做成一个函数, 是因为在数据量大时, ANALYZE是个很耗时的工作. 如果不是必须要求精确数字, 第二次及以后的统计可以使用前面的ANALYZE结果.
另一种方法:
SET ECHO OFF
SET HEAD OFF
SET LINESIZE 200
SET PAGESIZE 0
select 'SELECT ''' || TNAME || ''' TABNAME, COUNT(1) FROM ' || TNAME || ';' FROM TAB;
SPOOL C:\COUNTALL.SQL
/
SPOOL OFF
然后执行生成的COUNTALL.SQL
EXECUTE DBMS_UTILITY.ANALYZE_SCHEMA('MYUSERNAME', 'COMPUTE');
SELECT OWNER, TABLE_NAME, NUM_ROWS FROM USER_TABLES;
注意: MYUSERNAME是你的用户名, 用大写.
之所以不把它做成一个函数, 是因为在数据量大时, ANALYZE是个很耗时的工作. 如果不是必须要求精确数字, 第二次及以后的统计可以使用前面的ANALYZE结果.
另一种方法:
SET ECHO OFF
SET HEAD OFF
SET LINESIZE 200
SET PAGESIZE 0
select 'SELECT ''' || TNAME || ''' TABNAME, COUNT(1) FROM ' || TNAME || ';' FROM TAB;
SPOOL C:\COUNTALL.SQL
/
SPOOL OFF
然后执行生成的COUNTALL.SQL