Access (VBA) |
![]() ![]() |
(Windows 10 Pro : Access 2016)
遠隔地SQL Serverの1回目OPENに時間がかかる
投稿日時: 22/05/24 11:41:51
投稿者: hareru
|
---|---|
SQL Server2019std(本番用DB)への接続時の相談です。
|
![]() |
投稿日時: 22/05/24 12:02:59
投稿者: Suzu
|
---|---|
同じ遠隔地にあるマシンから同じ操作をした場合の接続時間はどうなっていますか?
|
![]() |
投稿日時: 22/05/24 14:02:23
投稿者: hareru
|
---|---|
Suzuさん、回答ありがとうございます。
|
![]() |
投稿日時: 22/05/25 09:31:55
投稿者: Suzu
|
---|---|
原因の 可能性が高いのは
引用: 当方でも、ポートまでは判りかねますが、 サーバー側でポート番号を変えていないのであれば、それで良いと思います。 一応、ローカルマシンのファイヤーウォールを無効にし、テストをしてみて、 接続時間に違いが無いか確認してみてください。 早くなったなら NETSTAT にて 使用しているポートを確認し、 ファイヤーウォールを有効にしNETSTATを再度実行 ポートの違いを確認し、ファイヤーウォールの開放ポート設定 遅いままなら SQLServer に対し、Test-NetConnection にて ポート1433の疎通確認。 Configure the Windows Firewall to Allow SQL Server Access https://docs.microsoft.com/ja-jp/sql/sql-server/install/configure-the-windows-firewall-to-allow-sql-server-access?redirectedfrom=MSDN&view=sql-server-ver16 のポートも確認してみてください。 引用: そうですね。 でも、AutoExcec等で接続を確立させてしまえば ボタンを押すまでの時間を稼ぐ事ができますよね。 テストとしては、VBA内で接続文字列を用意するのではなく DSNを使用するのも試せますね。 ODBC の DSN を設定 (アプリケーションのビットに合わせたODBCデータソースを使用してください) DSNの設定画面での接続テストでの反応時間 Accessリンクテーブルに DSNを指定し、そのリンクテーブルを開いてみる Accessリンクテーブルに DSNを指定し、そのリンクテーブルを VBA で開いてみる DSNを VBA内 接続文字列に使用し開いてみる |
![]() |
投稿日時: 22/05/25 09:37:54
投稿者: Suzu
|
---|---|
テスト 追加
|
![]() |
投稿日時: 22/05/25 17:05:09
投稿者: hareru
|
---|---|
Suzuさん、丁寧な回答ありがとうございます。
|
![]() |
投稿日時: 22/05/26 10:30:25
投稿者: Suzu
|
---|---|
引用: ファイル共有でなくとも良いのです。 SQLServer の PCへの接続情報がある事で、速くなる事があったので 同じ事ができないかな。と言うことです。 FTPや、SQL Server Management Studio でも 良いと思います。 |
![]() |
投稿日時: 22/05/26 12:36:33
投稿者: hareru
|
---|---|
Suzuさん、返信ありがとうございます。
|
![]() |
投稿日時: 22/05/26 13:36:09
投稿者: Suzu
|
---|---|
ファイヤーウォール の設定は、サーバー側でも必要ですが、
引用: 確認したのは、SQLServer のマシンと TCP 1433 で接続できるか? 名前付きインスタンスの場合、動的ポート の様ですから それ以外のポートも使う。 クライアント側で ファイアウォールに SQLServer を追加しても、 サーバー側からは、それ以外のポートで通信するため、 ポートを探す処理が入って時間を要しているのではないかと思います。 引用: 参照権限が無いのであれば、サーバーの管理者権限も無いのですよね? と言うことは、そのサーバーの管理者が他に居るのですよね? 回答者としては、推測で話すしかありませんが、 管理者が居るのであれば、その方に どの様な設定にすれば良いのか聞く方が確実と思います。 |
![]() |
投稿日時: 22/05/26 16:41:24
投稿者: hareru
|
---|---|
Suzuさん、返信ありがとうございます。
|
![]() |
投稿日時: 22/05/27 09:15:47
投稿者: Suzu
|
---|---|
引用: そうなんですね。リピートの通信であれば、速くなる事が無い事が確認できました。 ファイル共有 がさほど遅くなく、サーバー/クライアント の通信が特に遅い訳ではないのでしょう。 通信機器間間 での 初回通信が遅い事に起因するのではなく SQLServerサービスの接続 が 遅い事が判ります。 引用: Test-NetConnection は、1433 固定ポートの疎通確認であり Configure the Windows Firewall to Allow SQL Server Access https://docs.microsoft.com/ja-jp/sql/sql-server/install/configure-the-windows-firewall-to-allow-sql-server-access?redirectedfrom=MSDN&view=sql-server-ver16 引用: 引用: 名前付きインスタンスであり、それが唯一の名前付きインスタンスでないなら 1434 以外のポートで、通信可能なポートを 探し通信を行う と言うことです。 探す分、時間を要する事となると考えます。 なので、1434 がOKだから、ポートが通信に時間を要する原因にならない と言うわけではないと思います。 ですから、ポートブロックが原因でない事を確認するためにも 一時的に、サーバー/クライアントのファイアウォールを 無効にし、 サーバー/クライアントのファイアウォールが 要因でない事を確認したいのです。 (ルーター等でポートが閉鎖されている可能性はありますが) 引用: それが出来るのであれば良いですね。 リモートで同一セグメントマシンを操作できたらラクチンですね。 |
![]() |
投稿日時: 22/05/30 12:12:58
投稿者: hareru
|
---|---|
Suzuさん、詳細な回答をありがとうございます。
引用: ADO接続パラメータにポート番号をしています、またSSMSから接続する時もポート番号を指定していて接続出来ているので動的ポートとは言えども利用しているポート番号は1433だと思っています。 構成マネージャを変更し動的ポートを設定後、再接続してみましたが現象は変わりませんでした。 構成接続マネージャ @SQL serverネットワークの構成→インスタンスのプロトコル→TCP/IP→IPアドレスタブ内の「IPALL」→TCP動的ポート=0に設定。(通常は空白で設定) ASQL Server BrowerとSQL Server(インスタンス)の再起動 Bもう一度、@の動的ポートをみて設定されたポート番号を確認。 C上記のポート番号を指定してado接続 pStrSvrInst = pStrSrvPC & "\INST_TEST,新ポート番号" 結果、変わらずです。 仮にServerと同一セグメントPCで接続し、OPENの時間が掛からないとしたらファイアウォールの問題ととらえて良いのでしょうか? 以上、よろしくお願いいたします.[/quote] |
![]() |
投稿日時: 22/05/30 14:56:48
投稿者: Suzu
|
---|---|
引用: その辺りは NETSTATで確認ください。 引用: 1433を指定しても、固定ではなく、動的に動作しているのであれば、 固定から動的に変更しても 変わりは無いでしょう。 何にしても、netstatでリッスンしているプロセスを特定すれば、 どのポートを使っているか確認できますね。 ポートが関係ないのだとすれば、あとはサーバー側の設定でしょうか。 遅いのが、SQLの実行ではなく、あくまでも接続なのですから、SQLの実行計画は関係ないですよね。 接続なのであれば、AUTO_CLOSE はどうなっていますでしょうか。 ON になっているのであれば、OFFにしてください。 |
![]() |
投稿日時: 22/05/31 18:51:18
投稿者: hareru
|
---|---|
Suzuさん、回答ありがとうございます。
引用: やはり、サーバ側の設定でしょうか。 今出来る事としてSQL Serverのインスタンス無しでの接続確認をやってみたいのですが、 一度uninstallしないとインスタンス無しで作ることは出来ないみたいなのですぐには出来ないかもしれません。 AUTO_CLOSEはDBをアタッチした時にOFFにしてあります。 [/quote] |
![]() |
投稿日時: 22/06/01 10:47:35
投稿者: Suzu
|
---|---|
引用: そうなのですね。残念。 引用: 当方の確認方法を含め、思いつくのは既に述べています。それらについてスルーされている部分もありますし 思いつく部分はもうありませんので、当方では力及ばず というところです。 |
![]() |
投稿日時: 22/06/01 11:51:03
投稿者: hareru
|
---|---|
Suzuさん、回答ありがとうございます。
|