跳转至
开发版采用单机部署,无需产品 License 文件。需要多机部署或大规模性能测试? 了解企业版

配置资源限制

在 GQL 查询开头添加SET_VAR提示,可为当前查询设置内存上限和执行并行度等配置。提示使用/*+ ... */语法,仅对当前查询生效,后续查询仍沿用会话中的配置。

常用配置项如下:

配置项 作用
memory_limit_bytes 查询执行的内存上限,单位为字节。
query_concurrency 单条查询执行的最大线程数。
procedure_minloglevel 当前查询中 GQL 过程的最小日志级别。

悦数图数据库开发版的 1 GB 数据量上限限制实例可存储的数据量。memory_limit_bytes限制查询执行时使用的内存,调整它不会改变数据量上限。产品限制见功能与限制。

示例

以下内存和并行度示例使用电影示例数据集中的movie图。尚未加载数据时,先按加载示例数据操作。

在悦数图管理的控制台中逐条执行以下语句。使用ngql输入多行语句时,首尾各用一行'''包围语句,见多行输入方式。

下文的query_concurrency=2和memory_limit_bytes=134217728是演示值,不作为推荐配置。实际使用时,可先沿用默认配置,再根据查询需求和可用的 CPU、内存调整。

配置内存限制

将当前查询的内存上限设为 128 MiB,即134217728字节(128 × 1024 × 1024 字节):

/*+ SET_VAR(memory_limit_bytes=134217728) */
USE movie
MATCH (person:Person)
RETURN person
LIMIT 100

超过内存上限时,查询会失败并返回内存超限错误。LIMIT 100只限制返回行数,不能据此确定查询所需的内存上限。

配置查询并行度

将当前查询执行的最大线程数设为2:

/*+ SET_VAR(query_concurrency=2) */
USE movie
MATCH (person:Person)
RETURN person
LIMIT 100

实际使用的线程数取决于执行计划和可用的 CPU 资源。未指定该提示时,沿用会话中的配置;该配置项的系统默认值为1。

配置多个限制

同时将当前查询的最大线程数设为2,内存上限设为 128 MiB:

/*+ SET_VAR(query_concurrency=2) SET_VAR(memory_limit_bytes=134217728) */
USE movie
MATCH (person:Person)
RETURN person
LIMIT 100

配置最小日志级别

以下示例使用临时图#movie_temporary_graph,需先按 CREATE TEMPORARY GRAPH 创建该图。

/*+ SET_VAR(procedure_minloglevel="DEBUG") */ USE #movie_temporary_graph {
  LOG_DEBUG("This is a debug log")
  LOG_INFO("This is an info log")
  LOG_WARN("This is a warning log")
  LOG_ERROR("This is an error log")
}

该提示将当前查询中过程日志的最小级别设为DEBUG,可输出DEBUG及更高级别的日志。