命令Analyze table tbl compute statistics是DDL还是DML?直觉上,它似乎都不是.当我在.sql文件中有此命令时,我需要这样做:
execute immediate 'Analyze table tbl compute statistics'
Run Code Online (Sandbox Code Playgroud)
我对这个命令有一个熟悉的问题: GRANT DELETE, INSERT, SELECT, UPDATE ON tbl to user
UPDATE甲骨文说,这两个grant和analyze的数据定义语言(DDL)语句.他们显然没有区分DDL和数据控制语言(DCL).
如果在PL/SQL中执行,则需要DBMS_SQLexecute immediate或DBMS_SQL.
另外," 不要使用ANALYZE的COMPUTE和ESTIMATE子句来收集优化器统计信息. "(10gR2)" 对于大多数统计信息的收集,请使用DBMS_STATS包....使用ANALYZE语句(而不是DBMS_STATS)进行统计信息收集与基于成本的优化器无关. "(11g R2)不适Analyze table用于收集优化器统计信息,但对其他事情仍然有用.请改用DBMS_STATS.(我链接到10g R2的在线Oracle文档.但是过去几天我在Oracle的文档站点遇到了麻烦,10g R2文档消失然后重新出现.)
| 归档时间: |
|
| 查看次数: |
15699 次 |
| 最近记录: |