下面的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 masterdbosysconfigures where [config]=103
我以前认为oracle processes参数只是规定进程数的上限,随便设置多大都可以,于是设置了个一千万,结果重启数据库的时候发现启动不了。
其实processes设置的值还是会占用oracle内存的,设置过大的话,你sga中没有足够的内存分配,数据库便无法启动。
你可以自己实验对比下,
当你设置不同processes值时候,shared_pool中的processes池,大小也会随之变化
select from v$sgastat where pool='shared pool' and name='processes';
关于Navicat查看,可参考教程搜索筛选的教程
Navicat 教程:如何进行搜索筛选
在数据库或模式中查找(只限于完整版本)
Navicat 提供的“在数据库或模式中查找:功能用于一个数据库和/或模式内搜索表和视图的记录。打开查找的方法:从主菜单选择工具->在数据库或模式中查找。
选择目标连接、数据库和/或模式,输入关键字以及选择搜索准则。点击“查找”按钮,然后在“查找结果”列表中双击表或视图即可查看记录。
搜索筛选
Navicat 为连接树的连接、对象列表的对象提供筛选,“对象筛选”功能可以让用户在对象列表或模型中筛选包含筛选字符串的对象。
在 Navicat 主窗口或模型设计器点击“查找”按钮并指定一个筛选字符串。
连接树筛选能让用户在连接树筛选包含筛选字符串的连接。
点击连接树聚焦并直接指定筛选字符串。如果连接已打开,筛选也会同时应用到连接中的数据库对象。
要移除筛选,只需删除筛选字符串。
最近有些客户提出想对SQL Server的连接数进行一些监听。总结了以下一些方法:
1、获取SQL Server允许同时用户连接的最大数
SELECT @@MAX_CONNECTIONS
2、获取当前指定数据库的连接信息
SELECT FROM masterdbosysprocesses WHERE dbid IN
(
SELECT dbid FROM masterdbosysdatabases
WHERE NAME='YourDataBaseName'
)
--根据需要更改YourDataBaseName
SELECT FROM masterdbosysprocesses WHERE DB_NAME(dbid) = 'YourDataBaseName'
3、获取当前SQL服务器所有的连接详细信息
SELECT FROM sysprocesses
以上查询结果包含了:系统进程和用户进程。
如果只是想查用户进程的话则需采用下面的方法
4、获取自上次启动 SQL Server服务 以来连接或试图连接的次数
SELECT @@CONNECTIONS
这个刚开始会有点误解,认为是当前SQL Server服务器当前所有的连接数。需要重点注意。
---查看当前数据库系统所有请求情况我只列出了我认为比较重要有助于我解决问题的字段。
SELECT dssession_id,
dsstatus,
Db_name(drdatabase_id) AS database_name,
dslogin_name,
dslogin_time,
dshost_name,
dcclient_net_address,
dcclient_tcp_port,
dsprogram_name,
drcpu_time,
drreads,
drwrites,
dcnum_reads,
dcnum_writes,
dsclient_interface_name,
dslast_request_start_time,
dslast_request_end_time,
dcconnect_time,
dcnet_transport,
dcnet_packet_size,
drstart_time,
drstatus,
drcommand,
drblocking_session_id,
drwait_type,
drwait_time,
drlast_wait_type,
drwait_resource,
dropen_transaction_count,
drpercent_complete,
drgranted_query_memory
FROM Sysdm_exec_requests dr WITH(nolock)
RIGHT OUTER JOIN Sysdm_exec_sessions ds WITH(nolock)
ON drsession_id = dssession_id
RIGHT OUTER JOIN Sysdm_exec_connections dc WITH(nolock)
ON dssession_id = dcsession_id
WHERE dssession_id > 50
ORDER BY dsprogram_name
----用户连接数
SELECT login_name,
Count(0) user_count
FROM Sysdm_exec_requests dr WITH(nolock)
RIGHT OUTER JOIN Sysdm_exec_sessions ds WITH(nolock)
ON drsession_id = dssession_id
RIGHT OUTER JOIN Sysdm_exec_connections dc WITH(nolock)
ON dssession_id = dcsession_id
WHERE dssession_id > 50
GROUP BY login_name
ORDER BY user_count DESC
查询数据库当前进程的连接数:
select count() from v$process;查看数据库当前会话的连接数:
select count() from v$session;查看数据库的并发连接数:
select count() from v$session where status='ACTIVE';查看当前数据库建立的会话情况:
select sid,serial#,username,program,machine,status from v$session;查询数据库允许的最大连接数:
select value from v$parameter where name = 'processes';或者:
show parameter processes;查询所有数据库的连接数
selectschemaname,count()fromv$sessiongroupbyschemaname;查询终端用户使用数据库的连接情况。
selectosuser,schemaname,count()fromv$sessiongroupbyschemaname,osuser;#查看当前不为空的连接
select from v$session where username is not null#查看不同用户的连接数
select username,count(username) from v$session where username is not null group by username以上就是关于sqlserver数据库最大连接数是多少全部的内容,包括:sqlserver数据库最大连接数是多少、怎样确定oracle数据库的最大连接数、数据库超过最大链接数,如何使用navicat查看等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)