1. 程式人生 > >JDBC連線遠端SQLSERVER速度超慢的問題解決

JDBC連線遠端SQLSERVER速度超慢的問題解決

利用JDBC訪問遠端SQLSERVER速度慢,這個事情讓我難受好久了,今天終於上網查詢到解決方案了(當然這段程式碼還是執行儲存過程的方法之一)

import java.sql.*;

public class DBTestProcedure {

DBTestProcedure() {
}
public static void main(String args[]) {

try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
// Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();

long startTime = System.currentTimeMillis();

// String url="jdbc:odbc:20SQL"; //20SQL是在172.18.10.134上建的連線172.18.0.20的DSN

String url="jdbc:microsoft:sqlserver://172.18.0.20:1433;DatabaseName=StuCourse";
String user = "***";
String password = "*****";
Connection dbConn = DriverManager.getConnection(url, user, password);


CallableStatement proc=dbConn.prepareCall("{?=call selectcourse(?,?)}"); //執行儲存過程
proc.registerOutParameter(1, java.sql.Types.INTEGER);//返回值
proc.setString(2, "200802345"); //準備引數1
proc.setString(3, "7");//準備引數2
proc.execute();
int result=proc.getInt(1);
//if(result==1)
//{
System.out.println(result);
//}

long endTime = System.currentTimeMillis();
System.out.println("****cost time:"+((endTime-startTime))+"ms***");

}
catch(Exception ex)
{
ex.printStackTrace();
}
}

}

上面這個程式碼,連線本地計算機的SQLSERVER很快<30ms,或者通過ODBC連線遠端也很快<30ms,可直接用指定IP的方式訪問遠端計算慢得不得了,>6000ms,後來上網查到原因了,原來是

原來server_name(本例子中是172.18.0.20)的問題,程式訪問172.18.0.20時,把它當成裡機器名稱進行解析,長時間沒結果最後才訪問了IP為172.18.0.20。 (我是在172.18.10.134上跑的這個程式)

[color=red] 解決方法是[/color]:在WEB伺服器的C:\WINDOWS\system32\drivers\etc\HOSTs表中新增一條
172.18.0.20 172.18.0.20
這下快多了,<60ms,搞不明白,除了hosts檔案還有其它方法沒有,萬一伺服器不是我的怎麼辦?

-- 建立儲存過程
alter PROCEDURE SelectCourse
(
@Sno [char](10),
@Cno [char](4)
)
AS
DECLARE @ReturnValue int -- 返回操作結果
SET @ReturnValue = 81



begin
begin tran
insert into sc(Sno,Cno) values(@Sno,@Cno)
Update Course Set num=num-1 where
[email protected]


if @@ERROR=0
begin
commit
set @ReturnValue=1
end
else
begin
rollback
set @ReturnValue=0
end
select @ReturnValue
Return @ReturnValue


原文出自:http://anyuecq25.blog.163.com/blog/static/13864827320104353425613/

相關推薦

JDBC連線遠端SQLSERVER速度的問題解決

利用JDBC訪問遠端SQLSERVER速度慢,這個事情讓我難受好久了,今天終於上網查詢到解決方案了(當然這段程式碼還是執行儲存過程的方法之一)import java.sql.*;public class DBTestProcedure { DBTestProcedure()

MySQL遠端連線速度解決辦法

今天用自己寫的圖書管理系統發現每次開啟都很慢,還以為是網速的問題,就ping了一下伺服器發現沒有問題,但是沒進行一次資料庫的操作都要等十幾秒這就很傷心了,因為要更新一些功能需要測試,就在網上查了一下解決辦法,只需兩步,在這記錄一下。 解決辦法: 1、在mysql的配置檔案中增加如

一組相關聯的問題:“sudo: unable to resolve host ###: Connection timed out”、軟件啟動速度、IPv6無法使用

acs sts 原因 命令 最終 hostname med 出現 connect 近日陸續發現計算機出現幾個問題,最終發現這些問題實際上是由同一個原因導致的 問題1:無法使用IPv6 問題2:無論是啟動Emacs GUI還是在命令行中執行emacs -nw指令,打開Emac

mybatis與spring整合後,#方式查詢速度特別解決

首先看下#{},${}區別 這裡引用別人總結的 在這次專案開發中,sql語句非常長,傳入引數雖然才有一個日期,但是在語句中#{date}的佔位多達20多個,這樣就造成解析過慢,引數生成再到語句就差不多要2分鐘,查詢出來耗時3分鐘,後來實在沒辦法,在捨棄了防止sql注入的安全下。使

jdbc連線mysql時報時區設定錯誤解決方法

參考https://blog.csdn.net/zqb765720343/article/details/80076020,感謝分享。 jdbc連線mysql時報時區設定錯誤,提示相差8小時。 1、在mysql命令列模式下修改時區,經過嘗試發現,這種方法重啟mysql後就失效了,不是永久的。

JDBC連線SQLsever2008出現錯誤,求解決

資料庫驅動成功 com.microsoft.sqlserver.jdbc.SQLServerException: 使用者 ‘ss’ 登入失敗。 ClientConnectionId:c4cc688f-67bb-444f-af4a-63c6785898d9 資料庫連線錯誤 at com.microsoft.sq

載入maven專案jar包速度解決方案

“載入maven專案jar包速度慢解決:” eclipse一直在載入jar包無法操作其他功能 找到本地安裝的maven位置: 開啟檔案後找到146行看到標籤後,新增映象地址: <mirror> <id>alimaven</id

Java程式通過JDBC連線遠端資料庫MySQL

程式碼如下: import java.sql.*; public class jdbc { @SuppressWarnings("unused") public static void main

埠問題讓HP1010在WIN7下列印速度

今天領導讓我看看她的印表機,反應慢,在點過列印以後,要近1分多印表機才有反應,我按網上的方法,如下:   開啟印表機和傳真,找到印表機圖示。滑鼠右擊屬性,開啟屬性對話方塊,選擇埠,檢查驅動程式所選擇的埠。   再開啟裝置管理器,找到DOT4 USB Printer Supp

JDBC連線MySQL5.7.18失敗的解決方法

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoade

windows10無法連線遠端桌面的問題的解決方法

前言 近期幾個月,大家使用windows10系統來連線遠端伺服器的遠端桌面的時候,一般都會出現異常,報錯為要求的函式不受支援及這可能是由於 CredSSP 加密 Oracle(由於當時未截圖,只能敲出來了);而windows7未發現此異常。 後來,查了很

jdbc 連線MySQL資料庫以及常見問題解決(在idea下)

首先要下載jar驅動包 下載解壓後,開啟,注意到裡面有一個jar的包。 然後就要在idea中匯入這個包。匯入的方法:左上角有個file,點選—>選擇program structure->選擇modules->選擇dependencies->

Android SDK Manager 無法下載更新,或者更新速度,或者待安裝包列表不顯示。

圖1 hosts檔案的屬性框      再次開啟hosts檔案,在其尾部空白處新增下列程式碼,儲存即可: #Google主頁 203.208.46.146 www.google.com #這行是為了方便開啟Android開發官網 現在好像不VPN也可以開啟 74.125.113.121 developer

JDBC連線Oracle資料庫常見問題及解決方法

Jbuilder正確連線 oracle 9i需要注意的幾個問題 oracle8以上的應該都使用classes12.jar檔案作為jdbc驅動; 正確設定windows的classpath和jbuilder中的enterprise setup 、con

PLSQL連線遠端ORACLE資料庫中文亂碼解決

ORACLE版本  11g PLSQL版本   9 現象 :連線遠端oracle 中文亂碼 解決步驟 : 1 :   檢視oracle字符集 select * from nls_database_parameters where parameter='NLS_CHARACT

連線sqlServer速度解決方法

說明:SqlServer伺服器(192.168.0.2)使用win2000系統,客戶端(192.168.0.3未安裝SqlServer,使用win2000系統),給客戶端安裝了AMS後連線192.168.0.2速度挺快的。 中間192.168.0.2有問題了。然後安裝了Win2003系統,安裝了sql,並且

遠端連線速度解決

:如果是區域網內,應該不是網速原因導致的。你可以在兩臺電腦中,分別按Win+R鍵調出執行對話方塊,然後試著輸入並執行“netsh interface tcp set global autotuninglevel=disabled”命令,一般可以解決遠端桌面連線卡

sql 2000 無法連線遠端資料庫 sqlserver不存在或訪問被拒絕 解決方案

一 看ping 伺服器IP能否ping通。    這個實際上是看和遠端sql server 2000伺服器的物理連線是否存在。如果不行,請檢查網路,檢視配置,當然得確保遠端sql server 2000伺服器的IP拼寫正確。    二 在Dos或命令列下輸入telnet 伺服器I

解決本地SqlServer無法連線遠端伺服器資料庫,錯誤10060

本地SqlServer 連不上伺服器的資料庫環境,錯誤資訊如下圖,折騰來折騰去,最終還是解決了 第一步   檢視伺服器本地埠是否已經開啟,檢視方法:首先向C:\Windows\System32資料夾新增 tcping.exe (點選下載)--->Win+R--->輸入cmd---

關於MyEclipse(jsp+Tomcat)與 SQLSERVER 2012 JDBC連線的問題解決方法

**我自己操作的總結,希望跟大家交流一下** **  susir  ** MyEclipse(jsp+Tomcat) + SQLSERVER 2012  +  SQLJDBC4.jar (使用的jar包的驅動能夠覆蓋到你資料庫的版本) 需要:一個應用整合驅動:Micros