こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

DBサーバーのOracleからのデータ取得について

WEBサーバー(Linux)とDBサーバー(WindowsServer2003)が分かれている環境で、WEBサーバーのPHPからoci8で、DBサーバーのOracleからデータ取得をしており、データ取得量?が多いとエラーとなってしまします。

SQL自体はOracle環境で実行して正常にデータ取得することは確認しているのですが、10万行程度のレコード数でもレスポンスの時点?でエラーとなります。
(レスポンスの情報が無いので、エラー内容が分からず、データ件数を絞ると抽出が出来ます)

解決方法をご存じの方や、PHPもしくはLinuxの設定で取得データサイズの設定方法について分かる方がおりましたら、ご教授ください。

宜しくお願い致します。

投稿日時 - 2016-05-20 15:18:27

QNo.9175294

暇なときに回答ください

質問者が選んだベストアンサー

PHPのエラーログには何かエラーメッセージが出ていませんか?
考えられるのは、PHPの処理時間が長くなりすぎてタイムアウトしているか、DBの処理時間やDBとの通信時間が長くなりすぎてタイムアウトしているか、PHPの利用できるメモリ量を超えてデータが抽出されたためメモリ不足でエラーになっていると言った所かと思います。
それぞれで対処方法が異なるので、まずは原因を特定する必要があります。

投稿日時 - 2016-05-20 15:58:34

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

実行したSQLで取得できるレコード数が多すぎてWebサーバーとDBサーバーとの間の転送時間が長すぎるのが原因でしょう。

解決策としては、レコード件数が少なくなるようにWHEREの抽出条件を工夫すること。

あとは、プログラムの目的と、取得するデータの用途によってSQL分を精査することくらいですね。

投稿日時 - 2016-05-20 17:09:37

あなたにオススメの質問