---
source_url: https://docs.dolphindb.cn/zh/funcs/r/registerStreamingSQL.html
fetched_at: 2026-05-19T09:35:35Z
category: funcs
title: registerStreamingSQL
sha1: 7c5509bf0355c7d7c0b48edea5cc19ee24b20414
---

# registerStreamingSQL

首发版本：3.00.4

## 语法

`registerStreamingSQL(query, [queryId],
[logTableCacheSize])`

## 详情

注册一条流式 SQL 查询，成功注册后返回一个唯一的 *queryId*。系统会基于该查询生成一个与 *queryId*
同名的共享流表，用于写入结果变更日志。

**注意：**仅被声明的表才能通过 `registerStreamingSQL` 注册流式 SQL 查询。

## 参数

**query** 字符串标量，表示要注册的流式 SQL 查询语句。

**queryId** 可选参数，字符串标量，表示 *query* 对应的 ID
名称。格式要求与变量名相同，只能包含字母、数字及下划线，且必须以字母开头。

- 若指定的 *queryId* 已存在，系统会自动在其后追加时间戳生成唯一 ID。
- 若不指定，系统自动生成唯一 ID。

**logTableCacheSize**
可选参数，正整数，表示结果变更日志在内存中的最大缓存条数，默认缓存全部。只要存在订阅，缓存中未发布的数据就会被保留，不会被清理。已发布数据清理规则如下：

- 若单次插入的日志条数不超过 *logTableCacheSize*，当内存中数据总条数达到 *logTableCacheSize* \* 2
  时，开始清理旧数据。
- 若单次插入的日志条数超过 *logTableCacheSize*，当内存中数据总条数达到插入行数与 *logTableCacheSize*之和的1.2倍，开始清理旧数据。

## 返回值

字符串标量。

## 例子

```dolphindb
t=table(1..10 as id,rand(100,10) as val)
share t as st
declareStreamingSQLTable(st)
registerStreamingSQL("select avg(val) from st","sql_avg")

// 查看流式 SQL 查询的状态
getStreamingSQLStatus("sql_avg")
```

**相关函数：**[declareStreamingSQLTable](../d/declareStreamingSQLTable.html), [registerStreamingSQL](registerStreamingSQL.html)
