云数据库 GAUSSDB-执行SQL语句:在语句中添加单分片执行语法

时间:2024-11-13 14:46:39

在语句中添加单分片执行语法

  1. 设置nodeName参数,通过调用Connection对象的setClientInfo("nodeName","dnx")。

    Connection conn = getConnection();
    conn.setClientInfo("nodeName","datanode1");

  2. 执行SQL语句,其中包括使用Statement对象的executeQuery(String sql)和execute(String sql)以及PreparedStatement对象的executeQuery()和execute()方法。

    PreparedStatement pstm = conn.prepareStatement("select * from test");
    pstm.execute();
    pstm.executeQuery();
    Statement stmt=conn.createStatement();
    stmt.execute("select * from test");
    stmt.executeQuery("select * from test");

  3. 关闭参数,将参数值设置为空字符串。

    conn.setClientInfo("nodeName","");
    1. 该功能是基于内核单分片执行功能进行的适配,所以使用前请确认使用的数据库内核是否支持单分片执行。
    2. 参数开启后一定要手动关闭参数,否则会对其他查询语句的执行产生影响。
    3. 参数一旦开启,当前连接所有的语句执行都会受到影响,到指定的DN上去执行。
    4. 参数开启后PreparedStatement对象的缓存机制会受到影响,已经缓存的语句会被清空,之后执行的带单分片查询的语句都不再缓存,直到参数关闭后缓存功能恢复。
    5. 参数为连接级参数,所以在同一时间只有一个参数会生效,无法通过此接口做到同一时间两条语句到不同的分片上去执行。

support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0062.html