You need to enable JavaScript to run this app.
ByteHouse 企业版

ByteHouse 企业版

复制全文
数据查询
预处理查询
复制全文
预处理查询

预处理查询(PREPARED STATEMENT)的用途是用于高效地重复执行相同(或相似)SQL 语句,避免重复解析和构建计划。本文将通过一个实例演示如何在 ByteHouse 企业版控制台的数据查询中使用预处理查询,具体的语法和详细介绍请参见预处理查询 PREPARED STATEMENT

前提条件

在使用之前,请确认使用的集群引擎版本已升级到 2.5 或以上。

使用示例

本文将以系统表 system.numbers 为例,演示如何创建一个预处理查询、快速执行一些查询命令,以及删除预处理查询。

创建预处理查询

  1. 登录 ByteHouse 企业版控制台,单击数据查询,输入创建预处理查询的命令。示例命令如下,其中[i: UInt32] 是参数化语法,用于定义一个名为 'i'、类型为 'UInt32' 的参数,以便执行时传入具体值:

    CREATE PERMANENT PREPARED STATEMENT prep1 AS
    SELECT count()
    FROM (SELECT number FROM system.numbers LIMIT 10)
    WHERE number < [i: UInt32];
    
  2. 在页面下方,单击节点配置,选择全部节点,并勾选所有查询,单击运行
    Image
    系统返回“执行成功”,则表示预处理查询创建完成。

  3. 刷新左侧数据对象列表,可以在“预处理查询”文件夹中看到已创建名为 “prep1” 的预处理查询。
    Image
    将鼠标光标悬浮在该预处理查询上,可以预览其 SQL 语句内容。
    Image

执行预处理查询

  1. 数据查询中,单击 + 号,创建新窗口,输入执行预处理查询的命令。示例命令如下:

    EXECUTE PREPARED STATEMENT prep1 USING i = 5;
    
  2. 勾选“全部节点”、“所有查询”后,单击运行
    Image
    可以看到系统完成了查询操作,并输出对应的结果。
    此操作相当于系统执行了以下语句。

    SELECT count()
    FROM (SELECT number FROM system.numbers LIMIT 10)
    WHERE number < 5;
    

管理预处理查询

  1. 在 ByteHouse 企业版控制台上,单击数据管理,选择目标集群,在左侧列表中可以查看到预处理查询文件夹,展开该文件夹,即可查看当前集群中已创建的所有预处理查询。
    Image
  2. 单击某一条预处理查询,可以在右侧查看对应的SQL语句。
    Image
  3. 单击预处理查询预览页面的去查询,系统将跳转到查询窗口页面,并自动填充查询语句。补充语句USING后的部分,可以快速使用预处理查询功能。注意,查询时需勾选全部节点
    Image
  4. 单击 ... 按钮,可克隆或删除预处理查询。操作详情请参见下文克隆预处理查询删除预处理查询

克隆预处理查询

如需基于当前的预处理查询创建新的查询,您可使用克隆功能。
操作步骤

  1. 在 ByteHouse 企业版控制台上,单击数据管理,选择目标集群,单击预处理查询,在预处理查询预览页面上,单击 ... 按钮,单击克隆,系统将跳转到数据查询窗口页面,并使用当前预处理查询的创建语句自动填充。
    Image
  2. 您可按需调整该语句,选择全部节点所有查询,单击运行,创建新的预处理查询。
    Image

删除预处理查询

ByteHouse 支持通过 SQL 语句或在控制台管理页面删除预处理查询。

控制台删除

在 ByteHouse 企业版控制台上,单击数据管理,选择目标集群,单击预处理查询名称,在预处理查询预览页面上,单击 ... 按钮,单击删除,确认需删除的预处理查询无误后,单击确定
Image
系统将返回删除成功提示,表示操作执行成功。
Image

SQL 语句删除

  1. 在 ByteHouse 企业版控制台上,单击数据查询,创建新窗口,输入删除预处理查询的命令。示例命令如下:

    DROP PREPARED STATEMENT prep1
    
  2. 选择全部节点所有查询,单击运行
    Image
    系统返回“执行成功”,则表示操作完成。

最近更新时间:2025.12.22 16:16:49
这个页面对您有帮助吗?
有用
有用
无用
无用