# Direct Query 脚本变量

您可以使用脚本 变量 来描述和操作 Direct Query 应用程序 的内部结构，或启用附加的重新加载输出信息。

使用下拉列表查看每个变量的简要说明和语法。

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DirectQuery/internal-variables-direct-query.htm)

#### DirectQueryResultCacheExpirySeconds

此变量允许应用程序指定缓存的查询结果被视为过期的时间。

该时间是从结果首次被缓存时开始定义的。如果缓存结果的时间大于或等于 n 秒，则该结果将被视为过期，并且不会用作匹配查询的缓存结果。相反，相关查询将像不存在缓存结果一样执行。

当查询再次执行时，其新结果可能会被缓存，具体取决于当前的缓存和内存状态。如果被缓存，它将重新开始计算时间，直到在 n 秒时过期。

此变量的默认值为 30。这意味着缓存的查询结果在 30 秒后被视为过期。

支持的变量值

| 值 | 说明 |
| --- | --- |
| -1 | 此设置意味着在用户登录期间保留缓存。 |
| 0 | 完全禁用缓存。 |
| 1-9,223,372,036,854,775,807 | 以秒为单位设置缓存结果的过期时间。 |
| &gt; 9,223,372,036,854,775,807 | 与将变量设置为 30 相同。 |

DirectQueryResultCacheExpirySeconds=n;

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DirectQuery/internal-variables-direct-query.htm)

#### DirectQueryRowFetchMaxCount

对于大多数使用 Direct Query 的 图表，获取的最大行数的默认值由客户端查询驱动，范围在 256 到 1000 之间。散点图是个例外，其默认最大值固定为 2500。这意味着一些支持 Direct Query 的图表显示的行结果不会超过 n 行，即使图表内容的无限制 SQL 查询会产生大于 n 行的结果。

存在 DirectQueryRowFetchMaxCount 脚本变量是为了允许增加或限制要在表格图表中显示的最大行数，或者将散点图图表上显示的最大结果限制为小于默认最大值 2500。

信息注释DirectQueryRowFetchMaxCount 的值不会对 聚合 操作产生任何影响。

此外，DirectQueryRowFetchMaxCount 还有以下注意事项：

* The default value of DirectQueryRowFetchMaxCount is -1 (meaning it is not used).

* Setting the script variable DirectQueryRowFetchMaxCount to a specific value greater than 0 allows a table chart populating query to fetch up to DirectQueryRowFetchMaxCount rows from the database - up to the maximum values shown in the table below.

* If DirectQueryRowFetchMaxCount is configured to be between 0 and 2500, then the DirectQueryRowFetchMaxCount value will also be used to limit the maximum data rows retrieved for populating a scatter plot chart.

* To undo the effects of the DirectQueryRowFetchMaxCount script variable, the variable can either be undefined, or set explicitly to a -1 value.

支持的变量值

| 值 | 说明 |
| --- | --- |
| 0 | 值 0 是一个特殊值，仅影响表格图表行获取。此设置在所有适用行（受选择影响）上进行动态分页，以填充表格图表。通过执行初始计数查询来确定分页的总最大行数，以确定远程数据库将为表格的填充查询返回总共多少行。<br><br>将此变量设置为 0 将导致所有其他支持的 Direct Query 图表（表格和散点图除外）获取其默认的客户端指定最大行数。散点图将获取其默认的最大 2500 行。<br><br>信息注释由于这会为每次加载或选择执行两个查询而不是一个，因此在数据库性能和成本方面可能会更昂贵。 |
| 1-100,000 | 设置从远程数据库中为表格或散点图图表获取的最大行数。请注意，散点图图表检索用于显示的行数绝不会超过 2500 行。 |
| &gt; 100,000 | 与将变量设置为 0 的效果相同。 |

DirectQueryRowFetchMaxCount=n;

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DirectQuery/internal-variables-direct-query.htm)

#### DirectQueryPreviewSql

此变量的默认值为 0。

将此变量设置为 &gt; 0 的值，可使附加信息包含在 Direct Query 应用程序的加载数据（重新加载）操作输出中。

附加信息显示发送到远程数据库的 SQL 查询，以预览表格的自定义 SQL 定义的结果。此信息有助于验证、评估或完善自定义 SQL 语句结果预期。有关相关信息，请参阅 DirectQueryPreviewResp 变量。

DirectQueryPreviewSql=1;

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DirectQuery/internal-variables-direct-query.htm)

#### DirectQueryPreviewResp

此变量的默认值为 0。

将此变量设置为 &gt; 0 的值，可使附加信息包含在 Direct Query 应用程序的加载数据（重新加载）操作输出中。

附加信息显示发送到远程数据库的与表格自定义 SQL 定义相关的 SQL 查询结果。有关相关信息，请参阅 DirectQueryPreviewSql 变量。

DirectQueryPreviewResp=1;