❶ 微軟sql Server 2008 R2 標准版(25用戶)最大並發連接數是多少及支持多少客戶端同時訪問
SQL Server 2008支持並發的連接數分兩種情況:
1)不啟用連接池
當創建到101個連接的時候,就無法再創建新連接了。也就是說,如果連接字元串不做任何處理,我們的程序只能夠跟SQLServer建立101個連接。
2)啟用連接池
在連接字元串中加入代碼:
Pooling=true;Max Pool Size=40000;Min Pool Size=0;
微軟在MSDN上對最大連接數的定義是:「默認是0,代表不限制,但最大連接數是32767。
SQL Server支持同時訪問的客戶端數量:
開發版、速成版有客戶連接限制,一般是10個連接。企業版、標准版沒有限制,硬體能支持多少就能支持多少。
(1)sqlserver多個連接擴展閱讀
sql server 2008 R2 連接數過高的解決辦法:
由於公司最近兩個Web站點做了負載均衡,但是緩存機制仍然是 Asp.Net 自帶的緩存,這樣就導致了每台Web 伺服器內存中都有一份緩存,直接導致了多次請求DB資料庫,造成了DB連接數過高。
由於是兩個較大的站點兩台伺服器做負載均衡(負載平衡),所以,DB 的連接數也飆升,幾乎翻了3倍。
公司DB伺服器用的是 Sql Server 2008 R2 ,並且DB伺服器配置是相當的強悍的,連接數一度沖擊到740,真是讓人驚嘆不已。雖然鏈接數強悍,但是前台訪問的頁面 超時的 也是茫茫多,沒辦法,只能採用了緊急處理:
1、加大程序中的緩存,特別是頁面頭部加上 OutPutCache 緩存。
2、用上鏡像的備份DB伺服器,把2個站點的DB鏈接改到了鏡像的DB,這台鏡像DB和現在主DB是不在同一個機房的,目標就是容災和在高流量的情況下快速切換
❷ sqlserver資料庫連接
使用Startup命令。
STARTUP參數說明:
1.不裝入資料庫而啟動實例,一般是在資料庫才創建時才可以這樣做:
STARTUP NOMOUNT
2.啟動實例並裝入資料庫 但不打開資料庫,允許用戶執行特定的維護操作。例如:
重命名數據文件;
添加、撤消或重命名重做日誌文件;
啟動和禁止重做日誌歸檔;
執行全部的資料庫恢復。
STARTUP MOUNT
3.啟動實例裝入資料庫並打開資料庫
正常情況是一個實例被啟動,資料庫裝入並打開。這種模式允許任何有效用戶連接到資料庫並執行典型的資料庫訪問操作。
STARTUP[OPEN]
4.限制在啟動時對資料庫的訪問
用戶可以在嚴格的模式下啟動實例並裝入資料庫,這樣的模式只允許DBA做以下的工作:
執行結構維護,如重建索引;
執行資料庫文件的導入導出;
執行數據裝載;
臨時阻止典型用戶使用數據
STARTUP RESTRICT
5.強制實例啟動
可以用下面命令來強行啟動實例,如果一個實例正在啟動,則STARTUP FORCE 重新啟動。
STARTUP FORCE;
6.啟動一個實例,裝入資料庫,並啟動全部的介質恢復
如果用戶要求介質恢復,可以啟動一個實例,裝入指向實例的資料庫,並自動地啟動恢復程序。
STARTUP OPEN RECOVER;
7.啟動獨占或並行模式
如果用戶的ORACLE伺服器允許多個實例來並發的訪問一個資料庫(Oracle 並行伺服器選項),應選擇獨占或並行裝入資料庫。例如:
STARTUP OPEN sale PFILE=initsale.ora PARALLEL;
如果用戶指定獨占(預設),那麼資料庫只能由當前的實例裝入並打開。下面是一個獨占的模式的實例:
STRARTUP OPEN sales PFILE=initsales.ora EXECLUSIVE RESTRICT
另外:
STARTUP [FORCE] [RESTRICT] [PFILE= filename] [OPEN [RECOVER][ database] | MOUNT | NOMOUNT]
STARTUP OPEN:STARTUP預設的參數就是OPEN,打開資料庫,允許資料庫的訪問。當前實例的控制文件中所描述的所有文件都已經打開。
STARTUP MOUNT:MOUNT資料庫,僅僅給DBA進行管理操作,不允許資料庫的用戶訪問。僅僅只是當前實例的控制文件被打開,數據文件未打開。
STARTUP NOMOUNT:僅僅通過初始化文件,分配出SGA區,啟動資料庫後台進程,沒有打開控制文件和數據文件。不能任何訪問資料庫。
STARTUP PFILE= filename:以filename為初始化文件啟動資料庫,不是採用預設初始化文件。
STARTUP FORCE:中止當前資料庫的運行,並開始重新正常的啟動資料庫。
STARTUP RESTRICT:只允許具有RESTRICTED SESSION許可權的用戶訪問資料庫。
STARTUP RECOVER:資料庫啟動,並開始介質恢復。
SHUTDOWN參數說明:
SHUTDOWN有四個參數:NORMAL、TRANSACTIONAL、IMMEDIATE、ABORT。預設不帶任何參數時表示是NORMAL。
SHUTDOWN NORMAL:不允許新的連接、等待會話結束、等待事務結束、做一個檢查點並關閉數據文件。啟動時不需要實例恢復。
SHUTDOWN TRANSACTIONAL:不允許新的連接、不等待會話結束、等待事務結束、做一個檢查點並關閉數據文件。啟動時不需要實例恢復。
SHUTDOWN IMMEDIATE:不允許新的連接、不等待會話結束、不等待事務結束、做一個檢查點並關閉數據文件。沒有結束的事務是自動rollback的。啟動時不需要實例恢復。
SHUTDOWN ABORT:不允許新的連接、不等待會話結束、不等待事務結束、不做檢查點且沒有關閉數據文件。啟動時自動進行實例恢復。
另外,對於NORMAL、TRANSACTIONAL、IMMEDIATE,DB Buffer Cache的內容寫入了數據文件,沒有提交的事務被回滾,所有的資源被釋放,資料庫被「干凈」的關閉。
對於ABORT,DB Buffer Cache的內容沒有寫入數據文件,沒有提交的事務也沒有回滾。資料庫沒有ismount和關閉,數據文件也沒有關閉。當資料庫啟動時,需要通過redo log恢復數據,通過回滾段對事務回滾,對資源進行釋放。
系參考網路文章
❸ ado連接sqlserver個數
初始化—連接資料庫
void ADOConn::OnInitADOConn()
{
// 初始化OLE/COM庫環境
::CoInitialize(NULL);
try
{
// 創建Connection對象
m_pConnection.CreateInstance("ADODB.Connection");
// 設置連接字元串,必悔輪須悶氏是BSTR型或者_bstr_t類型
_bstr_t strConnect = "Provider=SQLOLEDB.1; Server=127.0.0.1,1433; Database=frid; uid=frid; pwd=123;";
// _bstr_t strConnect = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=frid;PWD=123;Initial Catalog=master;Data Source=127.0.0.1,1433";
m_pConnection->Open(strConnect,"","",adModeUnknown);
}
// 捕捉異常
catch(_com_error e)
{
// 顯示錯誤信息
AfxMessageBox(e.Description());
}
}
最初紅色部分總是會出錯,[DBNETLIB][ConnectionOpen(Invalid Instance())] 無效的連接 的解決辦法
或[DBNETLIB][ConnectionOpen。。。 拒絕訪問。。。
可以從以下幾點排查錯誤:
1. 先檢查資料庫連接參數是否有誤,有的時候缺少一些東西,可能就連不上,前面紅色部分,我沒有添加1433埠號,結果總是出錯
加上之後,就ok了,現在紅色部分,兩個參數設置都能連接成功,可以參考下。
2. 在防火牆中檢碧罩信查1433埠是否打開了
3. 檢查sqlserver服務是否起來了,同時在sqlserver configraton manager 中,在網路設置中,將tcpip屬性-ip地址中,將tcp all的port 添加上1433埠
Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Data Source=192.168.1.28,1433
連接SQL server 2008 報錯: [DBNETLIB][ConnectionOpen (Invalid Instance()).]
[DBNETLIB][ConnectionOpen (Invalid Instance()).]無效的連接。
以前寫的是:
「Provider=SQLOLEDB.1;Persist Security Info=False;User ID=**;PWD=**;Initial Catalog=DatabaseName;Data Source=IP」
解決方法1:
改成
「Provider=SQLOLEDB.1;Persist Security Info=False;User ID=**;PWD=**;Initial Catalog=DatabaseName;Data Source=IP,1433″
就是把」Data Sourse = IP」 改為」Data Sourse = IP,埠」,就連接正常
解決方法2:
改成
「Provider=SQLOLEDB.1;Persist Security Info=False;User ID=**;PWD=**;Initial Catalog=DatabaseName;Data Source=IP,1433″
就是把」Data Sourse = IP」 改為」Data Sourse = 伺服器別名(如localhost\sqlexpress,就是打開SQL Server Management Studio Express時在左側上端那個名字)」,就連接正常
❹ 怎樣創建SQLSERVER 存儲過程,連接多個遠程資料庫查詢相同結構表的數據!如果遠程SQL伺服器則不查詢
存儲過程是建立單個資料庫的基礎上的,我還沒見到過一個存儲過程可以訪問別的數據的,
所以只能是在本資料庫中對表進行檢索。
你可以在你程序中建立所有連接資料庫的連接字元串,例:在web.config中建立
而且這樣方便管理
❺ 用sqlserver 有影響嗎 怎麼建立長連接
用戶少,使用長連接,減少web端與資料庫的邏輯連接數,可以讓連接保持久一點,不用頻繁建立連接。
用戶多,使用短鏈接,這樣用於使用完後就釋放連接了。但是消耗系統資源多一點。
web端默認連接池緩存100個連接,超過100個用戶同時連接,若使用長連接佔用久,物理連接和邏輯連接都需要等待以至超時。使用短連接頻繁斷開和連接,消耗CPU、內存等
❻ sqlserver怎麼連接兩個不同的資料庫裡面的兩個不同的表進行關聯查詢,兩個資料庫不在同一個伺服器
這個簡單,使用sqlserver的 OPENDATASOURCE 函數,開啟另外一個資料庫的臨時鏈接就可以了。不過那台伺服器的資料庫必須開啟了IP訪問。
❼ C#如何連接兩個不同版本的SQLserver資料庫
如果我沒記錯的話,你必須要先裝SQL2000,再裝2008這樣才行,不然2000好像裝不上。
安裝的時候你修改一下資料庫實例名就好了!
❽ sqlserver資料庫最大連接數是多少
設置最大連接數
下面的T-SQL 語句可以配置SQL Server 允許的並發用戶連接的最大數目。
exec sp_configure 'show advanced options', 1
exec sp_configure 'user connections', 100
第一句用以表示顯示sp_configure 系統存儲過程高級選項,使用user connections 時,要求show advanced options 值為1。
第二句配置最大連接數為100,0 表示不限制,但不表示無限,後面將談談。
也可以在企業管理器中配置,在企業管理器中,可以在實例上點右鍵->「屬性」->「連接」裡面更改。
需要重新啟動SQL Server,該值才會生效。
@@max_connections
select @@max_connections
它總是返回32767,它並不是指上面設置的user connections,實際上它表示user connections 最大可設置為多少。由於它的最大值是32767,那麼user connections 為0 時,最大連接數也就是32767 了,並不是無限。
默認情況下user connections 值是0,也就是說默認情況下SQL Server 的最大連接數是32767。
獲得當前設置的最大連接數:
select value from master.dbo.sysconfigures where [config]=103