【问题标题】:Counting rows in Vertica table per JDBC每个 JDBC 计算 Vertica 表中的行数
【发布时间】:2017-03-29 14:42:43
【问题描述】:

如何获取插入 Vertica 8 数据库的 ResultSet 中的行数,知道每个 ResultSet 仅在使用 Vertica 时转发?我正在尝试调整最初为 Oracle 开发的现有软件,所以如果我能找到一种方法来避免使用调用 SELECT count(*)... 查询重写所有内容,那真的会让我的生活更轻松......

【问题讨论】:

  • 一般来说,在获取最后一行之前,结果集中的行数是未知的。
  • 所以你想知道每个 jdbc 连接的每个会话获取的行数吗?
  • 不,我想知道查询返回的结果数。我的问题不清楚吗?

标签: java jdbc resultset vertica rowcount


【解决方案1】:

我如何知道 Vertica JDCB(请参阅:Vetica 文档:JDBC 功能支持): "光标只能向前,不可滚动。结果集不能更新。"

因此,在到达 ResultSet 的末尾之前,您无法获得行数。

【讨论】:

    【解决方案2】:

    你的问题有点棘手!因为您提到了“JDBC”,这表明只有 jdbc 连接应该被监控!

    现在!关于您的问题,这可能不是您想要的。

    为了让您知道您的查询来自何处或来自哪个 JDBC 连接,您需要标记您的 JDBC(良好做法),这样您就可以指向您的“坏/重”用户并知道您需要谁解释 Vertica 的工作原理。

    • 1- 标签 JDBC

    • 2 - 使用 sessions 表确定连接的来源。

    选择 ss.session_id, qp.query_type, qp.processed_row_count, qp.user_name 从 query_profiles qp 加入 会话 ss 在 ss.session_id=qp.session_id 在哪里 ss.client_label='' AND qp.error_code 为空 和 qp.is_executing='假' 订购方式 qp.processed_row_count DESC

    query_profile 中的 PROCESSED_ROW_COUNT 列显示查询返回的行数。 Vertica Doc reference

    我认为这是答案的一半,但我希望它有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-03
      • 1970-01-01
      • 2020-12-16
      • 1970-01-01
      相关资源
      最近更新 更多