# 管理DWS数据库连接
#### 操作场景
数据库默认支持一定数量的连接，管理员用户可以通过管理数据库的连接，了解当前数据库的连接性能或增加连接限制，使更多用户或应用程序可以同时连接到数据库。
#### 支持的连接数规格
集群支持的连接数与集群节点规格有关，CN及DN概述详情请参见[集群逻辑架构](https://support.huaweicloud.com/productdesc-dws/dws_01_0002.html#section0)：
表1支持连接数规格 
| 参数                      | 参数描述                       | CN连接数             | DN连接数                                             |
|:---|:---|:---|:---|
| max_connections            | 允许和数据库连接的最大并发连接数。       | 800   | max(vCPU核数/单节点DN数量\*120+24, 5000)   |
| max_pool_size              | CN的连接池与其它某个CN/DN的最大连接数。 | 800   | max(vCPU核数/单节点DN数量\*120+24, 5000)   |
| max_prepared_transactions | 设置可以同时处于预备状态的事务的最大数。      | 800   | max(vCPU核数/单节点DN数量\*120+24, 5000)   |
   
#### 查看最大连接数
- **方式一：** 集群创建成功后，用户可在DWS管理控制台上单击指定集群名称，切换至**"参数修改"** 模块，在**"所有配置"**里查看数据库参数max_connections的取值。
- **方式二：** 使用SQL客户端工具连接集群中的数据库后，通过SQL命令的方式查看数据库参数max_connections的取值。
  ```
  SHOW max_connections;
  ```
  界面显示的结果与以下信息类似，表示数据库默认支持的最大连接数为200。
  ```
  max_connections
  ----------------- 
  200
  (1 row)
  ```
  
 
#### 查看已使用的连接数
1. 使用SQL客户端工具连接集群中的数据库。
2. 支持查看如[表2]所示的连接数场景。除了创建的时候用双引号引用的数据库和用户名称外，以下命令中用到的数据库名称和用户名称，**其中** **包含的英文字母** **必须使用小写** 。
   
    表2查看连接数介绍 
   | **描述**                               | **命令**                                                                                                                                                                                                                                                                                                              |
   |:---|:---|
   | 查看指定用户的会话连接数上限。   | 执行如下命令查看连接到指定用户**dbadmin**的会话连接数上限。 ``` SELECT ROLNAME,ROLCONNLIMIT FROM PG_ROLES WHERE ROLNAME='dbadmin'; ``` 查询结果类似如下信息，其中"-1"表示没有对用户**dbadmin**设置连接数的限制。 ``` rolname  | rolconnlimit ----------+-------------- dwsadmin |           -1 (1 row) ```             |
   | 查看指定用户已使用的会话连接数。  | 执行如下命令查看指定用户**dbadmin**已使用的会话连接数。 ``` SELECT COUNT(*) FROM V$SESSION WHERE USERNAME='dbadmin'; ``` 查询结果类似如下信息，其中，"1"表示**dbadmin**已使用的会话连接数。 ``` count ------- 1 (1 row) ```                                                                                           |
   | 查看指定数据库的会话连接数上限。  | 执行如下命令查看连接到指定数据库gaussdb的会话连接数上限。 ``` SELECT DATNAME,DATCONNLIMIT FROM PG_DATABASE WHERE DATNAME='gaussdb'; ``` 查询结果类似如下信息，其中"-1"表示没有对数据库gaussdb设置连接数的限制。 ``` datname  | datconnlimit ----------+-------------- gaussdb |           -1 (1 row) ``` |
   | 查看指定数据库已使用的会话连接数。 | 执行如下命令查看指定数据库gaussdb上已使用的会话连接数。 ``` SELECT COUNT(*) FROM PG_STAT_ACTIVITY WHERE DATNAME='gaussdb'; ``` 查询结果类似如下信息，其中，"1"表示数据库gaussdb上已使用的会话连接数。 ``` count ------- 1 (1 row) ```                                                                  |
   | 查看所有用户已使用会话连接数。   | 执行如下命令查看所有用户已使用的会话连接数。 ``` SELECT COUNT(*) FROM PG_STAT_ACTIVITY; count ------- 10 (1 row) ```                                                                                                                                                                                                                       |
      
   
   
 
