awr中一条top sql,查询all_objects

本文探讨了一条SQL在三小时内被执行190万次的问题,发现是由C3P0连接池在Liferay产品中的“心跳”查询引起。文中提供了通过调整配置参数来减轻这一问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

每天看看库上的awr报告,发现有条sql三个小时内执行了190多万次:

SELECT NULL AS table_cat,
         o.owner AS table_schem,
         o.object_name AS table_name,
         o.object_type AS table_type,
         NULL AS remarks
         FROM all_objects o
         WHERE o.owner LIKE :1 ESCAPE '/'
         AND o.object_name LIKE :2 ESCAPE '/'
         AND o.object_type IN ('xxx', 'TABLE')
         ORDER BY table_type, table_schem, table_name

一开始以为是用户程序执行的,仔细一看,发现像是oracle内部sql,百度了些资料,确实有其它道友遇到类似情况,但没有给出详细说明。

看到一篇盖国强的文章,语句和这条相似:

SELECT   NULL AS table_cat, c.owner AS table_schem, c.table_name,
         c.column_name, c.POSITION AS key_seq, c.constraint_name AS pk_name
    FROM all_cons_columns c, all_constraints k
   WHERE k.constraint_type = 'P'
     AND k.table_name = :1
     AND k.owner LIKE :2 ESCAPE '/'
     AND k.constraint_name = c.constraint_name
     AND k.table_name = c.table_name
     AND k.owner = c.owner
ORDER BY column_name


给出的解释是:当JAVA程序中通过DatabaseMetaData#getPrimaryKeys()调用,将会执行这个SQL,如果不及时关闭,则还可能产生严重的内存占用。

看了些其它的资料,也是说的java在调用某些函数的使用应用到该语句,所以呢,最好还是让开发排查一下。


但事情往往推到开发那,就需要耗费大量口舌了。。。

---------------------------------------------------------------------------------------

后续补充2015-08-03

在metalink上面找到这样一篇文章(Doc ID 1492529.1)

导致出现大量执行上述sql的原因是:

This is caused by C3PO, a 3rd party connection pooling library used in the Liferay product.

These queries represent a "ping" to the database to test connection availability, and will do so with a lightweight query that returns no results.


解决方法:

修改portal-ext.properties文件中的参数jdbc.default.idleConnectionTestPeriod的值为一个较大的值,默认是60


<think>好的,用户现在问的是AWR2243芯片的SPI_HOST_INTR1引脚。我需要先确定这个引脚的功能和用途。首先,AWR2243是TI的毫米波雷达传感器,属于AWR2243P单芯片系列,用于汽车和工业应用。 用户之前已经询问过Net Class,现在转向具体的芯片引脚,可能是在进行硬件设计,特别是在PCB布局或驱动开发时遇到问题。SPI_HOST_INTR1引脚属于SPI接口相关的中断信号,需要详细解释其作用、配置方法以及使用场景。 我需要查阅AWR2243的数据手册或技术文档,确认SPI_HOST_INTR1的具体功能。根据TI的资料,这个引脚通常是主机中断请求信号,用于通知主控制器(如MCU)有事件需要处理。例如,当雷达芯片完成数据采集或检测到错误时,会通过这个引脚触发中断。 接下来,要考虑用户可能的实际应用场景。用户可能在设计SPI通信接口,需要了解如何连接这个中断引脚,是否需要上拉电阻,电平标准是什么(3.3V还是1.8V),以及如何配置中断服务程序。此外,可能还需要解释在数据手册中的相关寄存器配置,比如如何使能中断源,如何清除中断标志等。 还需要注意用户可能的错误点,比如未正确配置中断优先级,或者电路连接错误导致中断无法触发。这时候需要给出检查建议,比如用示波器检测信号,确认固件中的中断处理函数是否正确注册等。 另外,用户可能希望了解该引脚与其他SPI信号(如CS、CLK、MOSI、MISO)的关系,以及在实际PCB布局中的注意事项,比如信号完整性,走线长度匹配等。这时候需要结合之前的Net Class知识,建议将高速信号如SPI_CLK放在同一网络类中,设置适当的线宽和间距规则。 最后,确保回答结构清晰,分点说明功能、配置、应用场景和故障排查,帮助用户全面理解并解决问题。同时,提醒用户参考官方文档,确保信息准确。</think>以下是关于AWR2243芯片中**SPI_HOST_INTR1引脚**的详细解析: --- ### 一、**基本功能** **SPI_HOST_INTR1**是AWR2243毫米波雷达传感器的一个**主机中断请求引脚**,属于SPI(Serial Peripheral Interface)通信接口的辅助信号。其主要作用是通过硬件中断机制向主控制器(如MCU、FPGA)通知芯片状态变化或事件触发。 #### 关键特性 - **中断触发类型**:支持电平触发(高/低电平有效)或边沿触发(上升沿/下降沿) (具体模式需通过寄存器配置) - **信号电平**:与AWR2243的IO电压域一致,通常为**1.8V或3.3V**(需参考具体硬件设计) - **多路复用**:部分引脚可能与其他功能复用,需通过寄存器配置选择功能模式 --- ### 二、**应用场景** #### 1. **事件通知** - **数据就绪**:当雷达完成一帧数据采集时触发中断 (例如:ADC采样完成、FFT处理完毕) - **错误报警**:检测到SPI通信异常、硬件故障(如温度超限、电源波动) - **模式切换**:芯片从低功耗模式唤醒时发送中断信号 #### 2. **典型连接方式** ```plaintext AWR2243 主控制器(MCU) ┌──────────────┐ ┌─────────────┐ │ │ │ │ │ SPI_HOST_INTR1├───────[上拉电阻]──────►GPIOx │ │ │ │ │ └──────────────┘ └─────────────┘ ``` - **硬件设计注意**: - 建议添加**4.7kΩ上拉电阻**(若主控制器内部无上拉) - 电平匹配:若主控制器IO电压与AWR2243不同,需加电平转换电路 --- ### 三、**寄存器配置** 通过SPI总线配置AWR2243的**中断控制寄存器**以启用SPI_HOST_INTR1功能: #### 1. **中断使能寄存器(示例)** | 寄存器地址 | 位域 | 功能描述 | |------------|--------|------------------------------| | 0x4000_0010 | Bit[3] | 置1使能SPI_HOST_INTR1中断源 | | 0x4000_0014 | Bit[2] | 置1选择边沿触发(默认电平触发)| #### 2. **操作流程** 1. **初始化阶段**: ```c // 配置中断触发模式(示例代码) write_spi_register(0x40000010, 0x08); // 使能SPI_HOST_INTR1 write_spi_register(0x40000014, 0x04); // 设置为上升沿触发 ``` 2. **中断服务例程(ISR)**: ```c void EXTI_IRQHandler() { if (check_interrupt_source() == SPI_HOST_INTR1) { read_radar_data(); // 读取雷达数据 clear_interrupt_flag(); // 清除中断标志位 } } ``` --- ### 四、**调试与故障排查** #### 常见问题及解决方案 | 现象 | 可能原因 | 排查方法 | |-----------------------|--------------------------|-----------------------------------| | **中断无响应** | 1. 引脚未使能中断功能<br>2. 电平不匹配 | 1. 检查寄存器配置<br>2. 用示波器测量引脚电平 | | **频繁误触发** | 1. 未添加消抖电路<br>2. 中断标志未清除 | 1. 增加RC滤波电路<br>2. 确认ISR中清除标志 | | **信号毛刺** | 电源噪声或布线干扰 | 检查电源去耦电容,缩短SPI走线长度 | --- ### 五、**设计建议** 1. **PCB布局**: - 将SPI_HOST_INTR1与SPI_SCLK、SPI_MOSI等信号归入同一**高速信号网络类**,控制阻抗与等长 - 避免与射频信号(如RFIN引脚)平行走线 2. **固件优化**: - 在中断服务函数中尽量减少耗时操作,优先使用DMA传输数据 - 设置中断优先级高于普通任务(如在ARM Cortex-M中配置NVIC) --- **总结**:SPI_HOST_INTR1是AWR2243与主控制器协同工作的关键信号,需结合硬件设计与寄存器配置实现可靠中断通信。建议参考《AWR2243 Technical Reference Manual》第6.2节“SPI Interface”和第9章“Interrupt Controller”获取详细时序与寄存器定义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值