2011-10-21 28 views
2

Analyze table tbl compute statisticsはDDLまたはDMLですか?直感的には、どちらにも見えません。 私は.sqlファイルでこのコマンドを持っているとき、私は何をする必要があります:GRANT DELETE, INSERT, SELECT, UPDATE ON tbl to userOracle Analyze Tableコマンド

+1

'ANALYZE'は推奨されなくなりました「DBMS_STATS」の –

答えて

5

UPDATEオラクルsays両方grantanalyzeデータです:私はコマンドに関するsmiliar疑問を持っている

execute immediate 'Analyze table tbl compute statistics' 

を定義言語(DDL)ステートメントが含まれます。明らかにDDLとデータ制御言語(DCL)を区別していません。

PL/SQLから実行する場合は、execute immediateまたはDBMS_SQLが必要です。まだ他のもののために便利なのに

また、 "Do not use the COMPUTE and ESTIMATE clauses of ANALYZE to collect optimizer statistics."(10gR2の) "For the collection of most statistics, use the DBMS_STATS package. ... Use the ANALYZE statement (rather than DBMS_STATS) for statistics collection not related to the cost-based optimizer."(11グラムR2)Analyze tableは、オプティマイザ統計を収集するために推奨されていません。代わりにDBMS_STATSを使用してください。 (私は10g R2のオンラインOracleドキュメントにリンクしていましたが、10g R2のドキュメントが消えて再び現れて、数日前にOracleのドキュメント管理サイトに問題がありました)

+0

1つを除くすべてのリンク(10.2の 'ANALYSE'コマンドドキュメントのもの)は現在壊れています。 –

関連する問題