[pgsql-jp: 37271] Re: 1 件目の取得がやたら遅い
kawa @ g-planets.com
kawa @ g-planets.com
2006年 6月 21日 (水) 23:13:02 JST
川野です。
また、もう少し調べてみました。
環境がwin2kしかないので、外していたらすみません。
> ipconfig /flushdns
> でDNSキャッシュをクリアしてもう一度試しましたがどちらもクリアする前と同じ
ようにpingが通りました。
ipconfig /flushdns の後で、
ipconfig /displaydns としてみると、
hostsファイルに書かれているアドレスは、フラッシュされないようです。
そもそも、pingが返ってくる時間に名前解決の時間が含まれているかは、
ちょっと疑問です。もっとも、到達可能か、ネットワークが安定しているか、
を見るのには、意味があると思います。
> ここで、VC# + Npgsqlでアクセスしてみると、なんと現象が発生しなくなって
しまいました。
色々と試した後に、マシンを「再起動」していないのであれば、やはり名前解決が
怪しいかと。一度、名前解決してしまえば、キャッシュに入るので、その後は、
スムーズにいきます。
マシンを再起動し、すぐにNpgsql経由でアクセスすると、再現しますか?
そうすると、
1.hostsファイルに、localhost(127.0.01)の記述がない。そして、たまたま、DNS
サーバか
ネットワークが重かった。
2.そもそも、hostsファイルがない。
C:\WINDOWS\system32\drivers\etc\hosts にあるはず。
3.レジストリで、hostsファイルの位置がデフォルトと違う場所を指定している。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 内の
DataBasePathの値
※ hostsファイルが、デフォルト以外の場所にあり、yahooやgoogleが書かれている
と、
かなり、怖いですね。
他には、切り分けとして、
postgresのクエリーのログを取っていれば、各クエリーの実行時間が分かります。
これで、1回目と2回目以降に差がなければ、postgresのクエリー実行関連は、無実。
ここで疑問が、
postgresサーバは、コネクションを張られるときに、逆引きするのでしょうか。
ループバックアドレスでも?
pgsql-jp メーリングリストの案内