私は持っている:
- PHP 5.3.2 および Apache 2.0 を使用する Linux サーバー
- SQL SERVER を備えた Windows サーバー
Linuxサーバーをデータベースに接続し、unixODBC 2.3.1およびFREETDS 0.9.1を使用しています
接続は問題ありませんが、クエリが遅いです。以下の画像を生成する私のコードは次のとおりです。
$this->adodb->LogSQL(true); // turn on logging
$query = "select c.name, t.name, c.length from syscolumns c join systypes t on t.xusertype = c.xusertype
join sysobjects o on o.id=c.id where o.name = 'CONDOMINIO'";
$res = $this->adodb->Execute($query);
$this->adodb->LogSQL(false); // turn off logging
$perf = NewPerfMonitor($this->adodb);
echo $perf->SuspiciousSQL();
echo $perf->ExpensiveSQL();
画像 http://www.vigoonline.net/slow.png
ご覧のとおり、最初のクエリの平均時間は 4.68 秒で、遅すぎます。
次のように同じクエリを実行すると:
$this->adodb->_query($query);
次に、クエリの実行にかかる時間は 1 秒未満です。他の誰かが同じことを経験しましたか?
「Execute」で呼び出されるクエリは、テーブルから「MetaColumns」情報を取得するための独自のクラスに使用されます
テーブル「CONDOMINIO」には 21 行しかありません。
サーバー データベースがアプリケーション スクリプトと同じマシンにある場合、応答は高速です。