2009-07-09 13 views
0

最初に間違った場所に投稿するとすみませます。今問題に:CakePHPでOracleリモートサーバーに接続

私はCakePHPでWebアプリケーションを開発しています.WindowsボックスにOracleのバックエンドがあり、開発はCodeIgniterで最初に行われました。最近はCakePHPに移行することに決めました。

Oracleサーバーは異なるサブネットにあります。私はリモートサーバにケーキを接続することはできますが、シンプルなモデル、ビュー、コントローラを設定しました。しかし、コントローラの1つにアクセスしようとしているとき。例えばhttp://www.example.com/facilities/、ページの読み込みに時間がかかり、30秒後にスクリプトがタイムアウトします。

lotsaデバッグ後、これらの行が問題を引き起こしていることがわかりました。

cake/libs/model/datasources/dbo/dbo_oracle.php:448 


    $sql = 'SELECT view_name AS name FROM all_views UNION SELECT table_name 
      AS name FROM all_tables'; 

    if (!$this->execute($sql)) { 
     return false; 
    } 

私の理解から、ケーキは私がのsqldeveloperに上記のクエリを実行しようとすると、私は3.7K +結果だと私はそれを遅らせると思う、データベース内のすべてのテーブルを取得し、モデルに関連付けしようとしていますスクリプトがタイムアウトするまでの時間です。

この問題を回避する方法はありますか?

ありがとうございます。

答えて

1

ALL_TABLESおよびALL_VIEWSには、アクセス可能なすべての表/ビューのリストが含まれています。

  • SELECT権限を持つユーザーとして接続してください。
  • また、 は、ALL_TABLES/ALL_VIEWS をUSER_TABLES/USER_VIEWSに変更できます。その は、 が所有するオブジェクトのみを返します。
関連する問題