|
分類:[VBScript]
サーバ
Windows Server 2016
Office Pro 2016
クライアント
Windows10 Pro 20H2
InternetExplorer11
サーバ上に置いたAccessのデータ(1000件程度のデータテーブル1つ)を検索し表示するWEBページを作成しましたが、
ページが表示されるのに40秒かかる場合があります(時間を置いて1回目)
1回目:40秒
2回目:1秒未満
3回目:1秒未満
時間をおいて(数時間)
4回目:40秒
5回目:1秒未満
6回目:1秒未満
どこに時間が掛かるのか経過時間を各処理の間に記述して確認したところ、
ADO_DB.Closeの処理で時間が掛かっていました。
原因が分からず困っております。
Accessは閉じるときに最適化するようにはしておりません。
何か解決する方法ありますでしょうか?
<HTML>
<SCRIPT LANGUAGE="VBScript" RUNAT=Server>
DIM DB
DIM RS
DIM SQL
'Access接続処理
FUNCTION Access_Open()
Set DB = Server.CreateObject("ADODB.Connection")
DB.Open "Provider=Microsoft.ACE.OLEDB.12.0;Persist Security Info=False;Data Source=" & Server.MapPath("./test.accdb")
END FUNCTION
'Access切断処理
FUNCTION Access_Close()
ADO_DB.Close
END FUNCTION
'SQL発行
FUNCTION Search(SQL)
RS.Open SQL,DB,3,3
END FUNCTION
</SCRIPT>
<BODY>
<%
Call Access_Open()
Set RS = Server.CreateObject("ADODB.Recordset")
Call Search("SELECT * FROM TEST_TABLE")
Do Until RS.EOF
Response.Write("<TR>")
Response.Write("<TD NOWRAP>" & RS("DATA1") & "<BR></TD>")
Response.Write("<TD NOWRAP>" & RS("DATA2") & "<BR></TD>")
Response.Write("</TR>" & CHR(13))
RS.Movenext
Loop
SET RS = NOTHING
Call Access_Close '←ここで時間が掛かる
%>
</BODY>
</HTML>
|