我有Oracle 18c数据库。假设我有一个表database1.Customer的PUBLIC SYNONYM S_Customer
CREATE OR REPLACE PUBLIC SYNONYM S_Customer for database1.Customer;
如果在S_Customer上锁定统计信息,则在database1.Customer上收集统计信息时会抛出错误Oracle in 18c?
根据的说法,如果我锁定一个表上的统计信息,那么收集锁定的表上的统计信息会抛出一个错误。
我想知道,当我收集表的统计信息(而不是同义词)时,锁定表的同义词上的统计信息是否也会抛出相同的错误。
我是Oracle数据库的新手。我有2个查询返回相同的结果集。我想衡量它们的性能,并选择更好的。如何使用Oracle SQL developer执行此操作?我记得读到过某些工具提供统计数据。关于如何读取这些统计数据,有什么建议吗?
更新:按照Rob Van的建议,我使用tkprof实用程序来查找查询的性能。有几个参数我能理解(计数、行数、运行时间、执行时间),但大多数我不能理解,有谁能帮我解释这些参数的意义吗?以下是结果。
Query 1:
call count cpu elapsed disk query current ro
当我试图使用GATHER_TABLE_STATS过程收集表统计数据时,我得到了以下错误:
ORA-20001: Invalid input values for pname
ORA-06512: at "SYS.DBMS_STATS", line 31513
ORA-06512: at line 2
我运行的收集统计数据的代码是
BEGIN
DBMS_STATS.gather_table_stats ('OWNER', 'TABLE_NAME');
END;
/
我的Oracle版本是Oracle数据库11g企业版发行版11.2.0.4.0