# EXECUTE DIRECT
#### 功能描述
在指定的节点上执行SQL语句。一般情况下，SQL语句的执行是由集群负载自动分配到合适的节点上，execute direct主要用于数据库维护和测试。
#### 注意事项
- 只有系统管理员才能执行EXECUTE DIRECT。
- 为了各个节点上数据的一致性，SQL语句仅支持SELECT，不允许执行事务语句、DDL、DML。
- 使用此类型语句在指定的DN执行AVG聚集计算时，返回结果集是以数组形式返回，如{4,2}，表示sum结果为4，count结果为2。
- 由于CN节点不存储用户表数据，不允许指定CN节点执行用户表上的SELECT查询。
- 不允许执行嵌套的EXECUTE DIRECT语句，即执行的SQL语句不能同样是EXECUTE DIRECT语句，此时可直接执行最内层EXECUTE DIRECT语句代替。
 
#### 语法格式
```
EXECUTE DIRECT ON ( nodename [, ... ] ) query ;
```
#### 参数说明
表1EXECUTE DIRECT参数说明 
| 参数       | 描述     | 取值范围            |
|:---|:---|:---|
| nodename | 节点名称。   | 字符串，已存在的节点。       |
| query  | 要执行查询语句。 | 字符串，可以执行的SQL语句。 |
   
- **nodename**
  节点名称。
  取值范围：已存在的节点。
  
- **query**
  要执行查询的语句。
  
 
#### 示例
查询节点dn_6001_6002上tpcds.customer_address记录：
```
EXECUTE DIRECT ON(dn_6001_6002) 'select count(*) from tpcds.customer_address';
```
![](https://support.huaweicloud.com/sqlreference-911-dws/figure/zh-cn_image_0000002611738155.png "点击放大")
