一个计算SQL语句在HANA数据库执行花费的DB和CPU时间的统计工具

简介: 一个计算SQL语句在HANA数据库执行花费的DB和CPU时间的统计工具
class ZCL_HANA_DB_CPU_TIME_TOOL definition
  public
  final
  create public .
public section.
  class-methods CLASS_CONSTRUCTOR .
  class-methods GET_CURRENT_TIME
    returning
      value(RV_TIME) type DECFLOAT34 .
protected section.
private section.
  class-data SO_CONNECTION type ref to CL_SQL_CONNECTION .
  class-data SV_STATEMENT type STRING .
  TYPES: BEGIN OF typ_s_hostcpu,
           host TYPE char100,
           cpu  TYPE decfloat34,
         END OF typ_s_hostcpu,
         typ_t_hostcpu TYPE STANDARD TABLE OF typ_s_hostcpu WITH DEFAULT KEY.
ENDCLASS.
CLASS ZCL_HANA_DB_CPU_TIME_TOOL IMPLEMENTATION.
* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Static Public Method ZCL_HANA_DB_CPU_TIME_TOOL=>CLASS_CONSTRUCTOR
* +-------------------------------------------------------------------------------------------------+
* +--------------------------------------------------------------------------------------</SIGNATURE>
  method CLASS_CONSTRUCTOR.
    so_connection = cl_sql_connection=>get_connection(  ).
    sv_statement = 'select host, sum(process_cpu_time) from m_service_statistics where service_name = ''indexserver'' and detail <> ''standby'' group by host order by host'.
  endmethod.
* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Static Public Method ZCL_HANA_DB_CPU_TIME_TOOL=>GET_CURRENT_TIME
* +-------------------------------------------------------------------------------------------------+
* | [<-()] RV_TIME                        TYPE        DECFLOAT34
* +--------------------------------------------------------------------------------------</SIGNATURE>
  method GET_CURRENT_TIME.
    data: lt_hostcpu       TYPE typ_t_hostcpu,
          lr_data TYPE REF to data.
    TRY.
      DATA(r_stmt) = so_connection->create_statement( ).
      DATA(r_res) = r_stmt->execute_query( sv_statement ).
      GET REFERENCE OF lt_hostcpu[] INTO lr_data.
      r_res->set_param_table( lr_data ).
      r_res->next_package( ).
      r_res->close( ).
      READ TABLE lt_hostcpu ASSIGNING FIELD-SYMBOL(<cpu>) index 1.
      check sy-subrc = 0.
      rv_time = <cpu>-cpu.
    CATCH cx_root INTO DATA(cx_root).
      WRITE:/ cx_root->get_text( ).
      RETURN.
  ENDTRY.
  endmethod.
ENDCLASS.


相关文章
|
4天前
|
SQL 存储 关系型数据库
数据库开发之图形化工具以及表操作的详细解析
数据库开发之图形化工具以及表操作的详细解析
21 0
|
1月前
|
缓存 关系型数据库 分布式数据库
PolarDB常见问题之数据库cpu突然飙高如何解决
PolarDB是阿里云推出的下一代关系型数据库,具有高性能、高可用性和弹性伸缩能力,适用于大规模数据处理场景。本汇总囊括了PolarDB使用中用户可能遭遇的一系列常见问题及解答,旨在为数据库管理员和开发者提供全面的问题指导,确保数据库平稳运行和优化使用体验。
|
1月前
|
数据库
ABAP 泛型编程实战 - 分享一个数据库表内容的拷贝工具试读版
ABAP 泛型编程实战 - 分享一个数据库表内容的拷贝工具试读版
20 0
|
2月前
|
运维 安全 关系型数据库
参加数据库管理工具DAS训练营,赢取国潮保温杯和阿里云定制双肩包!
本训练营带您简单了解数据库自治与云安全服务,数据库自治服务提供云上RDS、PolarDB、NoSQL、ADB等数据库7*24小时异常检测、SQL自优化、安全合规审计、弹性伸缩、数据自治、锁分析等亮点功能。一站式自动化、数字化DAS集成平台,助力您畅享DBA运维智能化。
|
3月前
|
SQL Java 数据库连接
Mybatis和MybatisPlus:数据库操作工具的对比
Mybatis和MybatisPlus:数据库操作工具的对比
155 0
|
1月前
|
关系型数据库 MySQL 数据库
rds安装数据库客户端工具
安装阿里云RDS的数据库客户端涉及在本地安装对应类型(如MySQL、PostgreSQL)的客户端工具。对于MySQL,可选择MySQL Command-Line Client或图形化工具如Navicat,安装后输入RDS实例的连接参数进行连接。对于PostgreSQL,可以使用`psql`命令行工具或图形化客户端如PgAdmin。首先从阿里云控制台获取连接信息,然后按照官方文档安装客户端,最后配置客户端连接以确保遵循安全指引。
88 1
|
3月前
|
SQL 关系型数据库 MySQL
常用的数据库链接工具都有哪些
常用的数据库链接工具都有哪些
174 2
|
1月前
|
Oracle 关系型数据库 MySQL
一款好用的数据库表结构文档生成工具
一款好用的数据库表结构文档生成工具
|
1月前
|
网络协议 关系型数据库 MySQL
如何实现在公网下使用navicat图形化工具远程连接本地内网的MariaDB数据库
如何实现在公网下使用navicat图形化工具远程连接本地内网的MariaDB数据库
|
2月前
|
SQL 关系型数据库 MySQL
在OceanBase数据库中,mysqldump工具是可以用于数据备份的
【2月更文挑战第2天】在OceanBase数据库中,mysqldump工具是可以用于数据备份的
52 6