[英]Very slow SQL query when using IP in connection string
我對緩慢的 SQL 查詢感到非常頭疼。 我有兩個連接字符串,如下所示:
ConnectString1 = "Driver={SQL Server};Server=MSSQLSERVER5;Database=SchoolMain;Uid=Admin;Pwd=admin101;"
和
ConnectString2 = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=Admin;Password=admin101;Initial Catalog=SchoolMain;Data Source=192.168.1.2,1433"
兩者都連接到同一系統上的 SQL 服務器數據庫實例。 第一個使用數據庫實例名稱進行連接,而第二個使用 IP 地址(通過 Internet 連接到系統)和端口號進行連接。
使用ConnectString1
的查詢是最先執行的,執行時間不到 2 秒,而使用ConnectString2
的查詢非常慢,並且大多數時候返回超時過期錯誤。
我在互聯網上到處搜索,仍然找不到問題所在。 我讀到了關於關閉 LLMNR 協議並在主機文件中添加條目以解決反向 DNS 的信息,按照步驟操作,但它仍然與使用ConnectString2
的查詢仍然很慢一樣。
雖然當我將ConnectString2
中的 IP 地址從192.168.1.2
更改為127.0.0.1
時,查詢的運行速度非常快,就像使用ConnectString1
一樣。
有沒有辦法將機器上的所有 IP 地址路由到 127.0.0.1 ?
我需要ConnectString2
才能工作,查詢將從 LAN 外的其他系統推送到 IP 地址。
注意:我使用的是 SQL 服務器 2008
請幫忙。
這可能發生的主要原因是反向 DNS,這意味着 sql 需要將 IP 轉換為物理地址,這需要時間。
要解決此問題,請使用您的主機文件將地址添加到您的機器,而不是使用主機文件中給出的名稱而不是 IP。
如果您不想修改主機文件,請嘗試查看替代解決方案以啟用默認禁用的 TCP/IP。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.