环境细节: Server 2008 R2。在JBoss上运行的应用程序使用JDBC驱动程序访问DB。
问题:我的在线数据库服务器的CPU使用率很高。
使用下面的查询,我能够确定有2个查询(Select命令)处于挂起状态(等待类型- CXPACKET),持续了将近10分钟。我相信这是CPU使用率高的原因。
USE MASTER GO
SELECT scheduler_id ,
runnable_tasks_count ,
pending_disk_io_count
FROM sys.dm_os_schedulers
WHERE scheduler_
Ignite没有持久性。
sql如下所示:
SELECT CONCAT(MENAME,'<=@->', NATIVEMEDN,'<=@->', ORIGINSYSTEMID), COUNT(1) FROM
T_CURRENT_ALARM WHERE (specialAlarmStatus =0 and (invalidated =0) and specialAlarmStatus in
(0) and merged in (0,1) ) AND (changeFlag !=3 or changeFlag is null) GRO
有什么好的资源可以用来理解主要引擎上的数据库调优和提高您在该领域的知识?
这个问题的思想是收集总存在的大量资源,这样人们就可以拥有一个“一站式”的知识商店,对好的、同行认可的资源。
通用SQL
PostgreSQL () ()
MySQL
/
甲骨文
MS Server
Sybase Sybase
JDBC
我有这个perl脚本,它从sqlplus数据库中获取数据...每当特定序列号的状态值发生变化时,此数据库都会添加一个新条目。现在,我们需要在每次状态更改时挑选条目,并准备一个包含旧状态、新状态和其他字段的csv文件。db表示例。
SERIALNUMBER STATE AT OPERATORID SUBSCRIBERID TRANSACTIONID
51223344558899 Available 20081008T10:15:47 vsuse
我在MySQL平台上运行以下SQL查询。
表A是一个只有一列(主键)和25K行的表。表B有几列和75K行。
执行以下查询需要20分钟。如果你能帮忙,我会很高兴的。
INSERT INTO sometable
SELECT A.PrimaryKeyColumn as keyword, 'SomeText', B.*
FROM A, B
WHERE B.PrimaryKeyColumn = CONCAT(A.PrimaryKeyColumn, B.NotUniqueButIndexedColumn);
当您为Oracle编写相当复杂的SQL时,您迟早将不得不应用奇怪的执行提示,因为Oracle似乎无法计算出“最佳”执行计划本身。
现在,这肯定不是SQL标准。但是,我仍然想知道,是否有其他RDBMS支持这种类型的提示,我指的是“嵌入”在SQL中的提示?它们在语法上相似吗(例如,也放在SELECT关键字和第一个选择的COLUMN之间)?您是否知道比较各种RDBMS中的提示的通用文档页面?
注:我对这些关系数据库管理系统最感兴趣: Postgres、MySQL、HSQLDB、H2、Derby、SQLite、DB2、Sybase、SQL Server
我的物化视图底层表有600万条记录,每次都要进行完全刷新。MVIEW底层查询有18个表联接(所有表都在同一个模式中)。每次刷新时,它都会阻塞PGA内存,我收到警告。所以我的问题如下。
1)是否将物化视图更改为存储过程?存储过程将具有与Mview具有相同查询的游标,并通过使用批量收集和每次限制1000行将数据加载到新表。我们将写一份Autosys的工作(在非营业时间每天一次)来调用这个过程。
以下是我修改的程序:
CREATE OR REPLACE PROCEDURE proc_reporting IS
CURSOR cur_rows IS
(Old MVIEW query)
TYPE re