每 JDBC 计算 Vertica table 中的行数

Counting rows in Vertica table per JDBC

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

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

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

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

  • 1-标签JDBC

  • 2 - 使用 会话 table 确定连接的来源。

SELECT 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='' 并且 qp.error_code 为空 和 qp.is_executing='false' 订购方式 qp.processed_row_count描述

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

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

我是如何知道 Vertica JDBC 的(请参阅:Vertica 文档:JDBC 功能支持): "Cursors are forward only and are not scrollable. Result sets cannot be updated."

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