-
2021-05-01 05:22:47
create or replace procedure prc_yanglaolixi is
str_aac001 varchar2(16);
str2_aac001 varchar2(16);
num_aic410 number(12,2);
num_aic412 number(12,2);
num_aic413 number(12,2);
str_aae045 varchar2(6);
interest_year number;
sum_money number(12,2);
total_money number(12,2);
cur_time varchar2(50);
CURSOR CUR_AAC001 IS
SELECT DISTINCT AAC001 FROM IC40 ;
cursor cur_lixi is
select aac001,aae045,aic410,aic412,aic413 from ic40 where aac001=str_aac001;
begin
--删除数据
execute immediate 'truncate table v1_yanglao_zhye';
cur_time:=to_char(sysdate,'yyyymm');
open cur_aac001;
loop
fetch cur_aac001 into str_aac001;
-- sum_money:=0;
total_money:=0;
exit when CUR_AAC001%notfound;
open cur_lixi;
loop
fetch cur_lixi into str2_aac001,str_aae045,num_aic410,num_aic412,num_aic413; --日期类型错误?
exit when cur_lixi%notfound;
sum_money:=num_aic410+num_aic412+num_aic413;
while to_date(str_aae045,'yyyymm')
loop
select aia001 into interest_year from aa03
where aae001=case
when to_number(substr(str_aae045,1,4))>=7 then to_number(substr(str_aae045,1,4))
else to_number(substr(str_aae045,1,4))-1 end;
sum_money:=sum_money*(1+interest_year/12);
str_aae045:=to_char(add_months(to_date(str_aae045,'yyyymm'),1),'yyyymm');
end loop;
total_money:=total_money+sum_money;
end loop;
close cur_lixi;
insert into v1_yanglao_zhye select t2.AAC001 ,t2.AAB001 ,t2.AAC003 ,t2.aac004 ,t2.akc020 ,t2.AAC002 ,
total_money ,count(aae003) ,max(aae003) from ic40 t1,ac01 t2 where t2.AAC001=t1.aac001
and t2.aac001=str_aac001
group by t2.AAC001,t2.AAC003,t2.aac004,t2.AAB001,t2.akc020,t2.AAC002 ;
commit;
end loop;
close CUR_AAC001;
--aa03.aia001养老记账利率
end prc_yanglaolixi;
更多相关内容 -
DB2中存储过程执行慢问题故障处理
2020-12-19 20:52:18其实这个问题是以前同一个客户遇见的问题,当时一个工程师解决后记录的过程如下:应用同事反映但是对应到执行存储过程,执行了2,3个小时了,还没出来结果。存储过程主要是执行一条update sql语句,单独将语句拿出来...其实这个问题是以前同一个客户遇见的问题,当时一个工程师解决后记录的过程如下:
应用同事反映但是对应到执行存储过程,执行了2,3个小时了,还没出来结果。
存储过程主要是执行一条update sql语句,单独将语句拿出来,clp命令行执行很快,2-3s即可执行完成。
执行的SP:
call pdw.P_OCS_ACTIVE_UPDATE('20120304',?)
存储过程主要业务SQL:
/***********************开始实现业务******************************/
/*******/
SET vn_Step=1;--
call papp.p_debug(txdate,vn_PrcName,vn_Step,vv_sql); --
UPDATE PODS.T_ODS_PAR_CUSTMSG a
SET run_code='UU'
WHERE sm_code in ('o3','os','om','ol','ox') AND NOT EXISTS
(SELECT * FROM PODS.T_ODS_PAR_OCSACTIVEMSG b where a.ID_NO=b.ID_NO );
COMMIT;--
/************************结束业务逻辑******************************/
根据了解,这个存储过程有些时候了,最近无改动,以前都正常。
根据具体情况,第一反应是这个存储过程中语句的执行计划不正确了。静态sql的访问计划是在第一次编译后存储在数据库的包中的,之后运行都是使用包中的执行计划。解决办法很简单,对存储过程包重新绑定一下,使用最新的数据库统计信息生成最新的访问计划。
先查出此存储过程对应的包:
SELECT bname,
pkgname,
BSCHEMA
FROM syscat.packagedep
WHERE btype='T'
AND pkgname in(select bname from sysibm.sysdependencies where dname in (select specificname from syscat.procedures where procname='P_OCS_ACTIVE_UPDATE'
AND PROCSCHEMA='PDW'))
[DWE3:/tmp]db2 "SELECT bname,
> pkgname,
> BSCHEMA
> FROM syscat.packagedep
> WHERE btype='T'
> AND pkgname in(select bname from sysibm.sysdependencies where dname in (select specificname from syscat.procedures where procname='P_OCS_ACTIVE_UPDATE'
> AND PROCSCHEMA='PDW'))
> "
BNAME BSCHEMA
--------------------------------------------------------------------------------
T_ODS_PAR_CUSTMSG P8414315 PODS
T_ODS_PAR_OCSACTIVEMSG P8414315 PODS
2 record(s) selected.
对包执行rebind,操作前需连库
[DWE3:/tmp]time db2 rebind package pdw.P8414315
DB20000I The REBIND PACKAGE command completed successfully.
real 0m0.63s
user 0m0.02s
sys 0m0.00s
对存储过程包重新绑定后,存储过程几秒钟即执行完成,恢复正常。
拿出sql单独执行计划:
[DWE3:/newdb2home/db2inst3/fengsh]more 2.out
DB2 Universal Database Version 9.1, 5622-044 (c) Copyright IBM Corp. 1991, 2006
Licensed Material - Program Property of IBM
IBM DB2 Universal Database SQL and XQUERY Explain Tool
******************** DYNAMIC ***************************************
==================== STATEMENT ==========================================
Isolation Level = Cursor Stability
Blocking = Block Unambiguous Cursors
Query Optimization Class = 5
Partition Parallel = Yes
Intra-Partition Parallel = No
SQL Path = "SYSIBM", "SYSFUN", "SYSPROC", "SYSIBMADM",
"DB2INST3"
Statement:
UPDATE PODS.T_ODS_PAR_CUSTMSG a SET run_code='UU'
WHERE sm_code in ('o3' , 'os' , 'om' , 'ol' , 'ox' )AND NOT EXISTS
(SELECT *
FROM PODS.T_ODS_PAR_OCSACTIVEMSG b
where a.ID_NO=b.ID_NO )
Section Code Page = 1386
Estimated Cost = 1512832.000000
Estimated Cardinality = 183703.968750
Coordinator Subsection - Main Processing:
Distribute Subsection #1
| Broadcast to Node List
| | Nodes = 1, 2, 3, 4, 5, 6, 7
Subsection #1:
Access Table Name = PODS.T_ODS_PAR_OCSACTIVEMSG ID = 11,3174
| #Columns = 1
| Skip Inserted Rows
| Skip Deleted Rows
| Relation Scan
| | Prefetch: Eligible
| Lock Intents
| | Table: Intent Share
| | Row : Next Key Share
| Sargable Predicate(s)
| | Process Build Table for Hash Join
Anti Left Outer Hash Join
| Early Out: Single Match Per Outer Row
| Estimated Build Size: 7584000
| Estimated Probe Size: 6960000
| Access Table Name = PODS.T_ODS_PAR_CUSTMSG ID = 11,155
| | #Columns = 3
| | Skip Inserted Rows
| | Skip Deleted Rows
| | Evaluate Block/Data Predicates Before Locking Row
| | Relation Scan
| | | Prefetch: Eligible
Isolation Level: Read Stability
| | Lock Intents
| | | Table: Intent Exclusive
| | | Row : Update
| | Sargable Predicate(s)
| | | #Predicates = 1
| | | Process Probe Table for Hash Join
Establish Row Position
| Access Table Name = PODS.T_ODS_PAR_CUSTMSG ID = 11,155
Update: Table Name = PODS.T_ODS_PAR_CUSTMSG ID = 11,155
End of section
Optimizer Plan:
UPDATE
( 2)
/---------/ \
FETCH Table:
( 3) PODS
/-------/ \ T_ODS_PAR_CUSTMSG
HSJOIN Table:
( 4) PODS
/---/ \--\ T_ODS_PAR_CUSTMSG
TBSCAN TBSCAN
( 5) ( 6)
| |
Table: Table:
PODS PODS
T_ODS_PAR_CUSTMSG T_ODS_PAR_OCSACTIVEMSG
rebind后存储过程中此update语句执行计划:
db2expln -d newdssdb -g -c pdw -p P8414315 -s 0 -t>2.explain_rebind
-------------------- SECTION ---------------------------------------
Section = 8
Statement:
UPDATE PODS.T_ODS_PAR_CUSTMSG A
SET RUN_CODE='UU'
WHERE
SM_CODE in ('o3' , 'os' , 'om' , 'ol' , 'ox' )AND NOT
EXISTS
(SELECT *
FROM PODS.T_ODS_PAR_OCSACTIVEMSG B
where A.ID_NO=B.ID_NO )
Section Code Page = 1386
Estimated Cost = 1512832.000000
Estimated Cardinality = 183703.968750
Coordinator Subsection - Main Processing:
Distribute Subsection #1
| Broadcast to Node List
| | Nodes = 1, 2, 3, 4, 5, 6, 7
Subsection #1:
Access Table Name = PODS.T_ODS_PAR_OCSACTIVEMSG ID = 11,3174
| #Columns = 1
| Skip Inserted Rows
| Skip Deleted Rows
| Relation Scan
| | Prefetch: Eligible
| Lock Intents
| | Table: Intent Share
| | Row : Next Key Share
| Sargable Predicate(s)
| | Process Build Table for Hash Join
Anti Left Outer Hash Join
| Early Out: Single Match Per Outer Row
| Estimated Build Size: 7584000
| Estimated Probe Size: 6960000
| Access Table Name = PODS.T_ODS_PAR_CUSTMSG ID = 11,155
| | #Columns = 3
| | Skip Inserted Rows
| | Skip Deleted Rows
| | Evaluate Block/Data Predicates Before Locking Row
| | Relation Scan
| | | Prefetch: Eligible
Isolation Level: Read Stability
| | Lock Intents
| | | Table: Intent Exclusive
| | | Row : Update
| | Sargable Predicate(s)
| | | #Predicates = 1
| | | Process Probe Table for Hash Join
Establish Row Position
| Access Table Name = PODS.T_ODS_PAR_CUSTMSG ID = 11,155
Update: Table Name = PODS.T_ODS_PAR_CUSTMSG ID = 11,155
End of section
Optimizer Plan:
UPDATE
( 2)
/---------/ \
FETCH Table:
( 3) PODS
/-------/ \ T_ODS_PAR_CUSTMSG
HSJOIN Table:
( 4) PODS
/---/ \--\ T_ODS_PAR_CUSTMSG
TBSCAN TBSCAN
( 5) ( 6)
| |
Table: Table:
PODS PODS
T_ODS_PAR_CUSTMSG T_ODS_PAR_OCSACTIVEMSG
-
mysql存储过程太慢怎么办
2021-01-19 01:50:32mysql存储过程太慢的解决方法:首先打开my.cnf配置文件;然后添加配置【long_query_time=1】;接着通过【tail -f /tmp/logs/mysqld.log】命令监控sql;最后进行针对性的优化即可。解决方法:(推荐教程:mysql视频...mysql存储过程太慢的解决方法:首先打开my.cnf配置文件;然后添加配置【long_query_time=1】;接着通过【tail -f /tmp/logs/mysqld.log】命令监控sql;最后进行针对性的优化即可。
解决方法:
(推荐教程:mysql视频教程)
第一步:修改/etc/my.cnf文件,找到[mysqld] 里面加入#执行的sql
log=/tmp/logs/mysqld.log
#记录sql执行超过下面设置时间的sql
log-slow-queries = /tmp/mysqlslowquery.log
#执行时间大于等于1秒
long_query_time = 1
然后你可以tail -f /tmp/logs/mysqld.log 监控所有执行的sql,同样的方法可以监控mysqlslowquery.log 为执行时间超过long_query_time = 1(秒)的sql语句
比如通过第一步我们找到了某一个mysql 自定义函数执行慢func_getDevice(); 执行了15s,但并不知道这个方法里面到底是那一条sql影响了性能,那么就有了第二步。
第二步:进入mysql命令行,输入mysql> set profiling=1;
mysql> select func_getDevice(1);
mysql> show profiles;
+----------+------------+-----------------------+
| Query_ID | Duration | Query |
+----------+------------+-----------------------+
| 1 | 0.00250400 | select * from TDevice |
+----------+------------+-----------------------+
1 row in set (0.00 sec)
这时候你就会看到一个详细的sql执行列表,但默认只记录15条sql,如果方法里面的sql比较多,那么可以通过设置mysql> set profiling_history_size=20;
mysql> show variables like 'profiling%';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| profiling | ON |
| profiling_history_size | 15 |
+------------------------+-------+
2 rows in set (0.00 sec)
mysql> select func_getDevice(1);
mysql> show profiles;
这是时候就可以准确的看到是那一条sql语句影响了性能,比如 Query_ID=1 select * from TDevice 影响了性能;mysql> show profile for query 1;详细查看执行一条sql的耗时情况
+--------------------------------+----------+
| Status | Duration |
+--------------------------------+----------+
| (initialization) | 0.000003 |
| checking query cache for query | 0.000042 |
| Opening tables | 0.00001 |
| System lock | 0.000004 |
| Table lock | 0.000025 |
| init | 0.000009 |
| optimizing | 0.000003 |
查看表的索引等是否合理,通过针对性的优化以提高效率。
相关推荐:php培训
-
SQL Server中存储过程比直接运行SQL语句慢的原因
2012-03-12 10:54:52SQL Server中存储过程比直接运行SQL语句慢的原因 -
oracle 存储过程执行慢 单独执行sql快
2020-12-19 20:52:26直到我去实习了,在优化的过程中,才发现自己很无知,知识很局限。为此... 文章 优惠券发放 2018-12-01 1812浏览量 MYSQL MyISAM表锁 锁是计算机协调多个进程或线程并发访问某一资源的机制 。在数据库中,除传统的 ...优化器
Oracle 的优化器(Optimizer)实际上是数据库环境的参数设置。可以在INITsid.ORA 文件内的
OPTIMZER_MODE=RULE 或OPTIMZER_MODE=COST 或OPTIMZER_MODE=CHOOSE 来
设置优化目标。用户也可以在会话和查询方式下更改优化器的默认...
文章
eric0435
2016-05-13
1683浏览量
我必须得告诉大家的MySQL优化原理(2)
在可以思考一个问题,如果数据量非常大的情况下,您根据业务选择了合适的字段,精心设计了表和索引,还仔细的检查了所有的SQL,并确认已经没什么问题,但性能仍然不能满足您的要求,该怎么办呢?还有其他优化策略吗?答案是肯定的。
接下来继续和您讨论一些常用的MySQL高级特性以及其背后的工作原理。
分区表合...
文章
技术小能手
2018-07-18
2341浏览量
管理Oracle实例
前言
正常生产环境下往往是通过应用服务器来与Oracle数据库相连接,大多数使用Oracle的开发语言以Java为主,针对于Java的中间件有很多,我们这里具体来看一下Oracle整体产品线的WLS产品
安装Weblogic
执行上图所示命令,启动WLS安装页面
在欢迎页面中点击下一步继续
...
文章
技术小甜
2017-11-15
1039浏览量
阿里云爆款特惠专场,精选爆款产品低至0.95折!
爆款ECS云服务器8.1元/月起,云数据库低至1.5折,限时抢购!
广告
从Oracle迁移到MySQL的各种坑及自救方案
讲师介绍 冯帅
点融网高级DBA
获有Oracle OCM、MySQL OCP,目前从事MySQL相关的运维和架构工作,擅长异构数据库交互。
当企业内部使用的数据库种类繁杂时,或者有需求更换数据库种类时,都可能会做很多数据迁移的工作。有些迁移很简单,有些迁移可能就会很复杂,大家有没有...
文章
稀奇古怪
2017-05-17
2492浏览量
从Oracle迁移到MySQL的各种坑及自救方案
当企业内部使用的数据库种类繁杂时,或者有需求更换数据库种类时,都可能会做很多数据迁移的工作。有些迁移很简单,有些迁移可能就会很复杂,大家有没有考虑过为了顺利完成复杂的数据库迁移任务,都需要考虑并解决哪些问题呢?
在以前的工作中,我迁移过Oracle到Informix、Oracle和SQLSer...
文章
技术小美
2017-11-13
1312浏览量
前沿 | VLDB 2019论文解读:阿里巴巴大规模、海量数据实时分析型数据库系统——AnalyticDB
前言
一年一度的数据库领域顶级会议VLDB 2019于美国当地时间8月26日-8月30日在洛杉矶召开。在本届大会上,阿里云数据库产品团队多篇论文入选Research Track和Industrial Track。
本文将对入围Industrial Track的论文《AnalyticDB: R...
文章
Roin123
2019-08-30
2400浏览量
RMAN 初学者入门
本文转自网络,地址不详。
这篇文章是去年写的了,最初发表在chinaunix.net的oracle论坛里,收录在旧版文集中,可能很多没有看到,总有人写信要,今天乘改版之际就把它单独拿出来了。
RMAN(RecoveryManager)是DBA的一个重要工具,用于备份、还原和恢复oracle数据...
文章
长烟慢慢
2011-10-09
973浏览量
前沿 | VLDB论文解读:阿里云超大规模实时分析型数据库AnalyticDB
前言
一年一度的数据库领域顶级会议VLDB 2019于美国当地时间8月26日-8月30日在洛杉矶召开。在本届大会上,阿里云数据库产品团队多篇论文入选Research Track和Industrial Track。
本文将对入围Industrial Track的论文《AnalyticDB: R...
文章
Roin123
2019-09-02
1277浏览量
Oracle ASM 详解
ASM:Automatic Storage Management, 是Oracle 主推的一种面向Oracle的存储解决方案, ASM 和 RDBMS 非常相似,ASM 也是由实例和文件组成, 也可以通过sqlplus 工具来维护。
ASM 实例的创建和删除也可以用DBCA 这个命令来操...
文章
技术小美
2017-11-12
549浏览量
oracle 索引基本原理
一.索引基本概念
oracle提供了两种方式:从表中读取所有行(即全表扫描),或者通过ROWID一次读取一行。
如果只访问大数据量表中的5%的行,并且使用索引标识需要读取的数据块,这样话费的I/O较少.
索引对性能改进的程度:1.取决于数据的选择性 2.数据在表的数据块中的分布方式
当数据分...
文章
技术小胖子
2017-11-22
1096浏览量
oracle ASM
ASM:Automatic Storage Management, 是Oracle 主推的一种面向Oracle的存储解决方案, ASM 和 RDBMS 非常相似,ASM 也是由实例和文件组成, 也可以通过sqlplus 工具来维护。
ASM 实例的创建和删除也可以用DBCA 这个命令来操...
文章
余二五
2017-11-22
951浏览量
mysql各种引擎对比、实战
1)存储引擎概述;
(2)MySQL各大存储引擎;
(3)InnoDB和MyIsam使用及其原理对比;
(4)InnoDB和MyIsam引擎原理;
(5)剩余引擎的使用DEMO(主要是Mrg_Myisam分表);
文章目录:(例子下载在最下方)
(1)存储引擎概述
为什么要合理选择数据库存储...
文章
sunsky303
2018-01-12
1271浏览量
磁盘安装启动的方法与ASM
1.可用的raid级别
raid0
raid1
raid5
raid10 比raid 01好
raid100 这种raid级别优点主要是:改进随机读的性能和消除热点
2.更新的raid5
尽管raid5是一种廉价的冗余方案,但它对于写入密集型操作的性能较差。
当对raid...
文章
技术小胖子
2017-11-15
1021浏览量
MySQL优化系列(五)--数据库存储引擎(主要分析对比InnoDB和MyISAM以及讲述Mrg_Myisam分表)
MySQL优化系列(五)--数据库存储引擎(主要分析对比InnoDB和MyISAM以及讲述Mrg_Myisam分表)
之前一直是使用默认MySQL的InnoDB存储引擎,没有思考过为什么使用,也没思考过其优缺和其他数据库存储引擎。直到我去实习了,在优化的过程中,才发现自己很无知,知识很局限。为此...
文章
优惠券发放
2018-12-01
1812浏览量
MYSQL MyISAM表锁
锁是计算机协调多个进程或线程并发访问某一资源的机制 。在数据库中,除传统的 计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一 个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。 从这个角度来说,锁...
文章
航空母舰
2016-05-12
1724浏览量
ORACLE体系结构-真正的数据库-文件系统
前面文章,对于ORACLE部分前面主要阐述的是INSTANCE实例内部的一些东西,主要从共享池、数据缓冲区两大块去讲解,其实对于细节的说明还有一些知识点,如RMAN中的大池应用或PGA中的后台线程会在后面逐步说明,本文以ORACLE物理结构来讲解点点物理层的东西,其实这也是真正的数据库了,其余的都...
文章
钟隐
2010-06-11
1630浏览量
Oracle数据库备份与恢复的三种方法
转自blueskys567原文Oracle数据库备份与恢复的三种方法, 2006-10.
有删改
Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。
导出备件是一种逻辑备份,冷备份和热备份是物理备份。
一、 导出/导入(Export/Impor...
文章
橘子红了呐
2017-11-11
1137浏览量
我的MYSQL学习心得(十四) 备份和恢复
这一篇《我的MYSQL学习心得(十四)》将会讲解MYSQL的备份和恢复
MYSQL里的备份分为逻辑备份和物理备份,还原的时候同样分逻辑还原和物理还原
备份
逻辑备份方法
使用MYSQLDUMP命令备份
MYSQLDUMP是MYSQL提供的一个非常有用的数据库备份工具。mysqldump命令执行...
文章
skyme
2016-05-05
2395浏览量
[转载]聊聊Greenplum的那些事
原文
http://dbaplus.cn/news-21-341-1.html
聊聊Greenplum的那些事
李巍 2016-04-01 14:15:00 1024
开卷有益——作者的话
有时候真的感叹人生岁月匆匆,特别是当一个IT人沉浸于某个技术领域十来年后,蓦然回首,...
文章
德哥
2016-07-11
6805浏览量
轻量级数据库中间件利器Sharding-JDBC深度解析(有彩蛋)
讲师介绍
张亮
当当架构部总监
负责分布式中间件和私有云平台建设
目前主导开源项目:Elastic-Job及Sharding-JDBC
主题简介:
1、关系型数据库中间件核心功能介绍
2、Sharding-JDBC架构及内核解析
3、Sharding-JDBC未来展望
一、...
文章
行者武松
2017-08-02
1199浏览量
Oracle数据库备份与恢复的三种方法
Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。
一、 导出/导入(Export/Import)
利用Export可将数据从数据库中提取出来,利用Import则可将提取出来...
文章
科技小先锋
2017-11-15
1034浏览量
数据库产品事业部月刊(2020.3-4)
一、重大事件
1、飞刀接受印度知名IT媒体专访:阿里云的目标是实现数据库的完全自动化和智能化
阿里云云原生数据库PolarDB和云原生数据仓库AnalyticDB在印度正式上线,当地知名的IT媒体YourStory对阿里云智能数据库事业部总负责人李飞飞博士进行了专访。
在采访中李飞飞表示,随着计算...
文章
Roin123
2020-05-29
344浏览量
带你读《HikariCP数据库连接池实战》之二:数据库连接池江湖
点击查看第一章点击查看第三章第2章
数据库连接池江湖
本章将为读者介绍数据库连接池的一些基础概念。数据库连接池涉及的概念很多,这里介绍的是我认为在企业应用开发中非常基础和重要的概念。数据库连接的建立是一种耗时长、性能低、代价高的操作,频繁地进行数据库连接的建立和关闭会极大影响系统的性能,若多线程并...
文章
被纵养的懒猫
2019-11-08
1712浏览量
2020这一年总结出来的Java面试题,常频面试题大汇总~
面试就是大家身边总是存在各种各样的可能,而自身又具备这样的能力,就忍不住想试一试,尤其是到了年关,是一个好的蓄势并且认真积累的阶段。当然面试套路众多,但对于技术面试来说,主要是考察一个人的技术能力和沟通能力。不同类型的面试官根据自身的理解问的问题也不尽相同,没有规律可循。
“面试造火箭,工作拧螺丝...
文章
游客jky5slpogbcdo
2020-12-12
7浏览量
吃透Mysql
Mysql概述
数据库是一个易于访问和修改的信息集合。它允许使用事务来确保数据的安全性和一致性,并能快速处理百万条以上的数据。数据库一般可以用如下图形来理解:
数据库功能模块图
数据库是由多种互相交互的组件构成的。大致可以分为三层,最上层是面向用户的组件:查询管理器、数据管理器、工具包...
文章
彦帧要努力
2018-09-02
1064浏览量
系统架构-基础篇-(高性能基础建设说明与选型条件)
本文牵扯的面积可能会比较泛,或者说比较大,在这个层面很多人也有自己的见解,所以我这也仅仅是抛砖引玉,结合前面讲述的一些基础技术,从思想中阐述更为深入的架构思想基础,因为最好的架构思想是架构师结合实际情况思考出来最适合的架构,这里仅仅说明下一些常用的原理和思想,主要包含的内容有(内容很泛,所以都是简...
文章
钟隐
2011-05-15
1599浏览量
[译] 系统设计入门 | 掘金翻译计划
本文讲的是[译] 系统设计入门 | 掘金翻译计划,
-
Oracle存储过程定位慢SQL方法
2021-12-06 18:23:24最近遇到开发反馈一个执行将近2天的存储过程,需要分析慢的原因。查询和咨询了大家一些定位方法,汇总记录一下。 一、 存储过程中加入计时代码 原始的分析方法,适用于较简单、性能要求不太高的存储过程场景。在... -
SQL查询语句执行速度快,存储过程执行慢
2020-12-19 20:52:25今天一个生成10w条数据...会为该存储过程生成一个基于输入参数的执行计划,因此如果第一次输入的参数不具有代表性(例如大部分查询输入的参数都是A值,但第一次执行存储过程时输入的是B值),就有可能比即席查询慢,尽... -
oracle 在一个存储过程中调用另一个返回游标的存储过程
2020-12-16 13:30:15第一种情况是返回的游标是某个具体的表或视图的数据,如: SQL-Code: 代码如下: CREATE OR REPLACE PROCEDURE P_TESTA ( PRESULT OUT SYS_REFCURSOR ) AS BEGIN OPEN PRESULT FOR SELECT * FROM USERS;... -
使用存储过程非常慢,但是执行SQL很快问题分析
2019-08-20 09:38:49问题一:存储过程放在查询分析器中执行,大概耗时5秒左右即可成功执行,但是在网站中执行却会超时 1. 将该存储过程放到查询分析器中执行,大概耗时5秒左右即可成功执行,但是在网站中执行却会超时; 2.经查阅... -
sqlserver存储过程执行变慢
2019-12-03 13:32:16项目使用的是sqlserver数据库,每运行一段时间存储过程就会变慢,同一个存储过程,在传入不同参数的情况下,有的情况下执行快,有的执行慢。莫名其妙,一直找不到原因, 后来每次变慢手动编译存储过程, sp_... -
Sql Server存储过程执行慢
2019-11-12 14:40:56SQL Server在存储过程执行之前都会制定一个执行计划。在上面的例子中,SQL在编译的时候并不知道@thedate的值是多少,所以它在执行执行计划的时候就要进行大量的猜测。假设传递给@thedate的参数大部分都是非空字符串... -
存储过程执行慢的原因
2019-05-16 11:17:00存储过程执行很慢,单独拎出来执行就很快1.一开始是直接写的存储过程,然后执行,卡了很久,大概10分钟左右才执行出来2.后面我尝试将插入的数据插入到临时表中,大概5秒就执行出来了3.但我发现,执行出来的结果跟我... -
Java调用SQL Server的存储过程详解
2020-12-22 21:40:441、使用不带参数的存储过程 使用 JDBC 驱动程序调用不带参数的存储过程时,必须使用 call SQL 转义序列。不带参数的 call 转义序列的语法如下所示: {call procedure-name} 作为实例,在 SQL Server 2005 ... -
在SQL Server 2005中创建CLR存储过程的详细介绍
2020-12-15 16:21:15在2005之前的版本创建存储过程都是在数据库里面写Transact-SQL语言实现的,不过现在SQL Server 2005支持用其他面向对象的语言编写CLR存储过程了,关于这样做的好处,官方有很多解释了,这里就直接说明实现方法了。... -
MySQL存储过程执行慢
2021-01-25 20:49:083.把存储过程里的查询单独拿出来查询速度很快,但是放在存储过程函数中就很慢。2.原因:数据库表中的字段是utf-8,而数据库字符集后来改成了utf8mb4。存储过程中定义参数时,没有指定字符集,会默认读取创建存储过程... -
.NET 数据库存储过程执行快,程序调用存储过程执行慢
2017-08-03 14:46:02问题描述:开发了一个功能,因数据关联比较复杂,所以写了存储过程。 查询1万多条数据:在数据库直接执行存储过程耗时2秒,在测试系统运行,也是3、5秒就显示结果了。 发布到正式系统,发现运行非常非常慢(5... -
提高存储过程执行效率
2020-12-29 06:41:03曾经发现这样一种情况,存储过程中的语句提取出来单独执行很快,但在存储过程中执行就很慢。----************* 存储过程中的语句,变量为 avc_acct_monthSELECT 2101,B.BUNDLE,COUNT( Distinct CASE WHEN (substr... -
把sql语句写成存储过程后执行速度变慢的问题随笔
2021-11-05 14:07:28解决方案: 1. 生成存储过程的时候,在as前加入WITH RECOMPILE,例如: create proc proc_name @variable1 nvarchar(50), ...2. 从程序中传入存储过程的参数不能有空值和NULL,如果有的话,在存储过程... -
Python使用cx_Oracle调用Oracle存储过程的方法示例
2020-09-09 13:34:56主要介绍了Python使用cx_Oracle调用Oracle存储过程的方法,结合具体实例分析了Python中通过cx_Oracle调用PL/SQL的具体步骤与相关操作技巧,需要的朋友可以参考下 -
Sql Server中存储过程使用时间长了查询效率变得很慢的分析
2020-01-09 20:33:57通过查找资料,我了解到存储过程是预编译的,存储过程在上一次执行过程中就生成了最优的执行计划并将之缓存起来,后面我们再继续调用该存储过程都是用的该缓存的执行计划,而随着数据的变化和数据量的增加,该缓存... -
SQL语句直接执行和在存储过程中速度的有关问题.
2021-05-05 01:13:40SQL语句直接执行和在存储过程中速度的问题......同一个SQL语句,放在存储过程中执行比直接执行差了100倍以上的速度,很不解啊...这个有什么具体的方法来优化么?数据库版本是9i......貌似在10g上就没这么大差别..但是... -
MS SQL Server 执行存储过程比执行相同SQL语句慢的问题
2019-06-07 21:36:04MS SQL Server 执行存储过程比执行相同SQL语句慢的问题,试试两个方法: 1,重启SQL Server 。不知道具体原因,但有时管用。 2,如果上面步骤没有效果,那么可能是Parameter sniffing问题。在过程里面把参数值赋给... -
为什么我的存储过程中insert数据特别慢!
2021-05-05 05:03:31在该存储过程中执行了四条查询,一条insert:.........................给up1,up2,up3,strday赋值select nvl(sum(zzf),0),count(qdhm) into s1,s2 from tk_gjsj where ((zldm = '332') or (zldm = '342')) and (hthm... -
mybatis存储过程中第二update执行速度很慢导致,最终在存储过程中没有执行,求解决方案
2016-11-25 07:06:52create procedure assignOrder(in userId BIGINT,in arrangBy BIGINT,in meg VARCHAR(1000),out count BIGINT) ...第二个update太慢的缘故还是,什么缘故,反正存储过程执行结果,但是第二个update没有任何效果 -
Oracle存储过程(存过)或SQL脚本执行慢的优化
2020-02-27 10:43:21使用oracle开发的时候,如果在存储过程中,或者是其他代码中使用了drop语句删除大量表,容易在回收站中产生垃圾,DBA会投诉,所以不要这样做,如果确定了要drop表,则最好加上purge,但是要慎用,因为无法闪回 ... -
oracle 批量插入数据存储过程
2018-06-25 14:11:37oracle 批量插入数据存储过程。亲测好用。支持 plsql ,toad,等数据库分析软件。主要包括变量的定义,循环及游标的使用等, 亲测好用 -
存储过程执行比单独执行慢
2022-04-29 11:33:28如果语句单独执行很快,但是放到存储过程中很慢,那可能是执行计划搞的鬼试试 WITH RECOMPILE -
MySQL存储过程的优化实例
2020-12-16 01:50:45将会影响以后的系统维护困难和大存储过程逻辑的难以理解,另外如果数据库的数据量大或者项目对存储过程的性能要求很,就会遇到优化的问题,否则速度有可能很慢,经过亲身经验,一个经过优化过的存储过程要比一个性能...