-
累计的力量,delete全表扫描导致程序运行时间过长。
2010-07-01 12:07:56昨天晚上熬夜加班到3点多,主要时间耗在一个做账业务上,这个业务是三个月前开始的,前几次做都还是比较快的不到一个小时,可是昨天晚上竟然花费了4个多小时。我手头工作太多,当时没顾得上找原因。今天早上分析了...昨天晚上熬夜加班到3点多,主要时间耗在一个做账业务上,这个业务是三个月前开始的,前几次做都还是比较快的不到一个小时,可是昨天晚上竟然花费了4个多小时。我手头工作太多,当时没顾得上找原因。今天早上分析了一下那个时段的AWR,原来祸首是个DELETE语句。
DELETE ZC67 WHERE BAZ203 = :B2 AND BAC100='0' AND AAE140 = :B1 ;
执行计划
----------------------------------------------------------
Plan hash value: 318370648
-----------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-----------------------------------------------------------------------------
| 0 | DELETE STATEMENT | | 1 | 19 | 2447 (2)| 00:00:30 |
| 1 | DELETE | T_ZC67 | | | | |
|* 2 | TABLE ACCESS FULL| T_ZC67 | 1 | 19 | 2447 (2)| 00:00:30 |
-----------------------------------------------------------------------------
统计信息
----------------------------------------------------------
4 recursive calls
0 db block gets
10989 consistent gets
这个语句循环的调用,执行了接近6万次。
1.GIF
整个包的CPU时间是13389,可这个语句就运行了12774秒。(这个语句是包调用的)。
解决办法是对BAZ203增加索引,这个字段是个序列产生的,每条记录都唯一。区分度非常好。
之所以前几次比较快是由于数据量还不大,随着数据量变大,运行时间长也就在所难免了。
[ 本帖最后由 wei-xh 于 2010-7-1 12:00 编辑 ]来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22034023/viewspace-666809/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22034023/viewspace-666809/
-
C# 控制台应用程序——随机数
2014-05-13 00:31:35Stopwatch是C#一个类似秒表的东西,用来计算程序的运行时间,注意,必须按照要求,计时器在程序运行时就要开启,在结束时停止并输出结果,不能放置在其他地方。 3)防伪码生成思路 例如,有以下定义: string ... -
C++程序设计教程(第二版)
2011-05-15 00:35:53目前该书累计销量已超过400000册,深受高校师生的欢迎。 指导学生多次在ACM/ICPC亚洲预赛北京赛区中获得铜奖以上成绩;2004年指导学生在ACM/ICPC亚洲预赛北京赛区中获得排名第8。 从事《程序设计》、《数据结构》、... -
JAVA小白求救:坦克大战-多关卡咋做?没思路。。。
2019-04-16 22:11:00坦克大战-多关卡咋做: 自己代码如下: //坦克大战:-换关卡,-IO声音流,把爆炸换成外面的图片,有BUG继续游戏的时候看不到爆炸一下才能看到地方坦克, import java.awt.*; import javax.swing.*; import java.... -
「项目案例」使用西门子博途 SCL高级语言编写
2020-03-27 10:18:16需求: 如果客户共有8台水泵,4用4备,但每次启动设备时累计运行时需要最运行时间最短的4台运行。 解析: 如果使用梯形图来写的话,此程序会非常复杂,或者有此编程能力稍低的压根就写不出来,由此我们引出西门子...此项目用博途 SCL高级语言编写如何开启运行时间最少的几台设备
需求: 如果客户共有8台水泵,4用4备,但每次启动设备时累计运行时需要最运行时间最短的4台运行。
解析: 如果使用梯形图来写的话,此程序会非常复杂,或者有此编程能力稍低的压根就写不出来,由此我们引出西门子博途的SCL高级语言编程,将会比较容易实现,这里以8台为例,如果数量有变化,只要稍做修改即可。
新建FB块:名字为:找出最小几个时间输出
1:在FB块中新建如下变量,此处我们为方便观察,建立的是单个变量,当然也可以把运行时间和变量输出用数组表示
时间累计用DINT比较合理,最大表示为2147483647——分钟
内部中间变量
程序体:
2:把外部输入的时间转入存进数组
3:如果外部传入的数据有相等的情况,就把有相等的数据加1 ,使数组里面的数据不相等,此段程序需要加,如果不加,一般情况下本功能块也可正常运行,如果有碰到数据有相等的情况下,程序就会发生错误。
4:冒泡排序
5:找出最小运行时间的几台泵的序号输出, 具体输出几台,由输入变量select_number决定排序前和排序后的数组进行交叉对比,找出最少的几台输出
6:结果输出
7:新建一个DB块,里面建立一个如下数组,用于累计时间的存储
8:运行效果图1
由图上我们选择4 台最少时间输出,左边可以看出,时间最小的是1,2,4,5#泵,则右测则1,2,4,5#泵的输出 为TRUE;
9:运行效果图2
由图上我们选择2台最少时间输出,左边可以看出,时间最小的是1,7#泵,则右边则1,7#泵的输出 为TRUE; 程序测试完全正解
文章来源:启程高老师
启程智能
关于我们:启程自动化 中国领先的工业机器人培训服务提供商
培训项目:机器人、PLC系统集成、机器视觉
特色服务:3000平米实训中心 +推荐就业+ 业界领先的课程体系
地 址:深圳市宝安区沙井107汇聚创智园
https://baijiahao.baidu.com/s?id=1649611800792298297&wfr=spider&for=pc
-
c#进程守护软件-附源码
2018-08-09 13:37:5029、增加循环启动时间次数的累计显示,和所有程序累计启动次数不一样,这个指的是定时器执行的次数,不管是否启动了守护的程序,这个周期都是累加,可能没多大意义,另外那个是程序启动一次才加一次。 30、防止任务... -
记录物品
2020-12-30 16:09:35于是就做了记录物品这个程序,帮我记录2021年各个物品都使用了多少。 这个程序可以帮你记录一段时间内使用了多少文具,买了多少衣服。或者听了几首陈奕迅的歌,听了几首李克勤的歌,只要是可以累计数量的,他都可以...一、前言
今天牙膏用完了,去买牙膏时突然想到我2020年用了多少支牙膏呢。
于是就做了记录物品这个程序,帮我记录2021年各个物品都使用了多少。
这个程序可以帮你记录一段时间内使用了多少文具,买了多少衣服。或者像这种听了几首陈奕迅的歌,听了几首李克勤的歌,只要是可以累计数量的,他都可以帮你完成
代码在下面,感兴趣的可以直接复制下来,复制到python直接就可以用。二、代码
复制之后运行时先初始化,保证程序可以记录数据。
建立的.b.d的文档一定不能删除,它们就是用来记录数据的def 初始化(): print('您确定要初始化吗?') print('初始化会导致之前记录的数据丢失') from time import sleep as slp while True: slp(0.2) print('请输入是或否') a = input() if a == '是': def 确认初始化(): print('开始初始化', end='') from shelve import open as oop fa = oop(r'记录data') fa['物品字典'] = {} fa['物品列表'] = [] fa['物品数量'] = 0 fa.close() for i in range(3): slp(0.2) print('.', end='') print('\n初始化成功\n') slp(0.2) print('是否现在填写物品使用情况') print('输入是或否') a = input() if a == '是': 批量记录() slp(0.2) 确认初始化() break elif a == '否': break # 初始化程序 def 执行(): while True: print('''0.初始化 1.记录 2.批量记录 3.查看使用情况 您想执行什么?''') a = input() if a == '0': 初始化() elif a == '1': 记录() break elif a == '2': 批量记录() break elif a == '3': 查看使用情况() elif a == 'q' or a == 'Q': break else: print('没有这个选择') print('退出请按Q') def 记录(): print('物品:') a = input() from shelve import open as oop fa = oop('记录data') if a not in fa['物品列表']: b = fa['物品列表'] b.append(a) fa['物品列表'] = b b = fa['物品字典'] b[a] = 1 fa['物品字典'] = b b = fa['物品数量'] b += 1 fa['物品数量'] = b fa.close() print('记录完毕,{}使用量加1'.format(a)) def 批量记录(): from time import sleep as slp print('开始批量记录') slp(0.2) while True: print('物品:') a = input() if a != 'q' or a == 'Q': print('数量') c = int(input()) from shelve import open as oop fa = oop('记录data') if a not in fa['物品列表']: b = fa['物品列表'] b.append(a) fa['物品列表'] = b b = fa['物品字典'] b[a] = c fa['物品字典'] = b b = fa['物品数量'] b += 1 fa['物品数量'] = b fa.close() print('记录成功,{}使用量加{}'.format(a, c)) print('按Q退出') else: break def 查看使用情况(): print('''按A查看全部 按L查看物品列表 按Q退出''') from shelve import open as oop fa = oop('记录data') while True: print('请输入物品名称:') a = input() if a == 'a' or a == 'A': b = fa['物品字典'] for i, n in zip(b.keys(), b.values()): print('{}:\t\t{}'.format(i, n)) elif a == 'l' or a == 'L': b = fa['物品列表'] for i, n in zip(b, range(len(b))): print('{:10}'.format(i), end='\t') if (n + 1) % 5 == 0: print('\n') print('\n') elif a == 'q' or a == 'Q': break elif a in fa['物品列表']: b = fa['物品字典'] print('{}\t\t{}'.format(a, b.get(a))) else: print('您的物品清单中没有{}'.format(a)) fa.close() 执行()
三、运行效果
0.初始化 1.记录 2.批量记录 3.查看使用情况 您想执行什么? 0 您确定要初始化吗? 初始化会导致之前记录的数据丢失 请输入是或否 是 开始初始化... 初始化成功 是否现在填写物品使用情况 输入是或否 是 开始批量记录 物品: 牙膏 数量 1 记录成功,牙膏使用量加1 按Q退出 物品: 铅笔 数量 25 记录成功,铅笔使用量加25 按Q退出 物品: 中性笔 数量 5 记录成功,中性笔使用量加5 按Q退出 物品: q 0.初始化 1.记录 2.批量记录 3.查看使用情况 您想执行什么? 3 按A查看全部 按L查看物品列表 按Q退出 请输入物品名称: 铅笔 铅笔 25 请输入物品名称: a 牙膏: 1 铅笔: 25 中性笔: 5 请输入物品名称: q 0.初始化 1.记录 2.批量记录 3.查看使用情况 您想执行什么? q
-
飞雪桌面日历5.0破解版
2010-12-03 11:51:325.迷你栏:可显示日期、时间、世界时间、阳历、农历、开机时间、系统累计运行时间等,并可以背景半透明及全透明。 6.备忘录:可以用它来提醒你将要做的事。可按阳历或阴历重复提醒,并能设定密码保护,在提醒时让... -
岳维功 ortp-realease.pdf
2020-12-24 04:00:17程序询问的最后一个应用程序时间戳此处应该指应用收最后一个包时的应用时间,是应用 按照 类型及其采样牽增长的吋间戳记录,不是系统时间,也不是包里的吋间 最后一个返回的采样的时间戳,仅仅对于连续的音频而言 接收... -
德力西产品说明.pdf
2019-10-10 18:41:58不正确的使用可能会造成变频器运行不正常、发生故障或降低使用寿命,乃至发生人身伤害事故。因此使用前应认真阅读本说明书,严格按说明使用。本手册为标准附件,务必请您阅读后妥善保管,以备今后对变频器进行检修和... -
人力资源管理软件(完全免费)
2011-03-08 11:36:202008-03-09 人力资源管理软件发布1.2版本,做了以下改进(感谢笑看人生、中秋月、天隼、蓝血人等各位朋友) 人力资源管理软件支持工号的自动生成 人力资源管理软件支持相关配置信息编号的自动生成 各模块支持直接... -
Oracle Database 11g数据库管理艺术--详细书签版
2012-09-30 01:09:45他拥有Oracle OCP DBA证书和HP UNIX System Administrator证书,做过Oracle公司的高级顾问,并曾在AT&T、NBC等世界顶级公司担任DBA。目前,他管理着世界上最大的Oracle数据库——美国童子军全国总部数据库。除本书外... -
入门学习Linux常用必会60个命令实例详解doc/txt
2011-06-09 00:08:45-t:在改变到其它运行级别之前,告诉init程序多久以后关机。 -k:并不真正关机,只是送警告信号给每位登录者。 -h:关机后关闭电源。 -c:cancel current process取消目前正在执行的关机程序。所以这个选项... -
测试覆盖率
2011-10-28 11:16:51测试的主要评测方法 ...所以一个项目,在我们实施很长一段时间,大约是半年至两年后,客户才意识到这样做是有用的。这很正常,因为软件开发一定会有大大小小的问题,包括我们评测也有一些问题查不出来。”... -
爱普生打印机清零软件 V4.20
2012-04-12 19:49:35废墨计数:在EPSON打印机(甚至HP、CANON的一些打印机中也有), 专门设置一个段程序以检测客户清洗及开机的次数,客户每开一次机或每清洗一次这个计数器就会累计,到一定数量,机器就不能打印。有些机器电源灯用进纸... -
2019数据运营思维导图
2019-03-29 21:34:09平均同时在线人数、最高同时在线人数和时间 每小时注册用户数 用户在什么节点来的多,需要重点监控该时间段app运行 用户画像 概述 是什么,有什么用,怎么做 构建用户画像的核心工作即是给用户贴“标签”,而标签是... -
数据运营思维导图
2018-04-26 14:24:22用户在什么节点来的多,需要重点监控该时间段app运行 用户画像 概述 是什么,有什么用,怎么做 构建用户画像的核心工作即是给用户贴“标签”,而标签是通过对用户信息分析而来的高度精炼的特征标识 作用 精准... -
步科触摸屏脚本函数介绍
2015-01-13 16:58:5713. 有累计计算脚本,长时间运行后,累计值不变?..........................................6 14. FileWriteStr(“c:\sql.txt”,0,“sfd%”,0);但是输出文本里少了%?........................6 15. 在应用程序... -
华为编程开发规范与案例
2008-09-04 16:44:561 逻辑类问题(A类)-指设计、编码中出现的计算正确性和一致性、程序逻辑控制等方面出现的问题,在系统中起关键作用,将导致软件死机、功能正常实现等严重问题; 接口类问题(B类)-指设计、编码中出现的函数和... -
噢易机房BOSS系统介绍PPT
2009-08-19 16:49:37护,从此他们不仅可以轻松的在机房上机试验,业余时间也可以做课程设计、毕业设计等等,机房管理与 学生自主完美结合。 Web查询可以方便管理员、教师和学生上网查询各自需要的相关信息。学生可以查看其充值记录... -
嵌入式软件测试工具--LOGISCOPE
2008-10-13 00:23:49护时间化在对结构、逻辑和运行的理解上。LOGISCOPE 可以大大的减少对未知系统的理解所需的时间。 Audit 将应用系统的框架以文件形式(部件文件间的关系)和调用图的形式(函数和过程间的关系)可视化。函数的逻辑... -
EXCEL集成工具箱完整版 (简体/繁体/英文多国语言版) V7.0
2010-08-13 10:31:10并能动态地显示运行过程,支持程序运行后中途暂停。 【恢复工资条】 能将已生成工资条的工资明细表,快速地还原为初始状态,支持多种参数设定。 【生成数据列】 生成发票号码序列的得力助手,可以生成任意的奇偶数列... -
EXCEL集成工具箱V9.0 多国语言最终原版(2003-2010通用)
2011-01-07 20:40:25并能动态地显示运行过程,支持程序运行后中途暂停。 【恢复工资条】 能将已生成工资条的工资明细表,快速地还原为初始状态,支持多种参数设定。 【生成数据列】 生成发票号码序列的得力助手,可以生成任意的奇偶... -
EXCEL集成工具箱V8.0 多国语言版(2003-2010通用)
2010-09-11 12:08:58并能动态地显示运行过程,支持程序运行后中途暂停。 【恢复工资条】 能将已生成工资条的工资明细表,快速地还原为初始状态,支持多种参数设定。 【生成数据列】 生成发票号码序列的得力助手,可以生成任意的奇偶... -
EXCEL集成工具箱V8.0完整增强版(精简)
2010-09-23 16:58:17并能动态地显示运行过程,支持程序运行后中途暂停。 【恢复工资条】 能将已生成工资条的工资明细表,快速地还原为初始状态,支持多种参数设定。 【生成数据列】 生成发票号码序列的得力助手,可以生成任意的奇偶... -
EXCEL集成工具箱V6.0
2010-09-11 01:44:37并能动态地显示运行过程,支持程序运行后中途暂停。 【恢复工资条】 能将已生成工资条的工资明细表,快速地还原为初始状态,支持多种参数设定。 【生成数据列】 生成发票号码序列的得力助手,可以生成任意的奇偶... -
Excel百宝箱8.0
2011-06-07 21:32:17【百家姓与字母序列】:运行后可以在单元格中进行百家姓与字母填充,提升录入速度 【一键隐藏非使用区】:对空白区域瞬间隐藏起来。可以选择作用对象是当前表还是所有工作表。恢复时也只要瞬间完成 【字符分离及计算... -
Excel百宝箱9.0无限制破解版.rar
2012-09-05 09:31:51【百家姓与字母序列】:运行后可以在单元格中进行百家姓与字母填充,提升录入速度 【一键隐藏非使用区】:对空白区域瞬间隐藏起来。可以选择作用对象是当前表还是所有工作表。恢复时也只要瞬间完成 【复制粘贴可见... -
Excel百宝箱9.0无限制破解版
2012-02-03 19:05:29【修改文件时间】:随心所欲修改文件的创建时间 【清除IE上网密码】:用于清除IE浏览器的密码,突破上网限制 【创建多版本打开方式】:如果安装了多个版本的Office,本工具可助您任意选择Excel文件的打开方式。通过文件...
-
CentOS7安装Python3环境(无需修复yum命令)
-
远程桌面多窗口工具.rar
-
security-learning-demo.zip
-
人事管理系统-Java类代码资源
-
【链表】:输入一个链表,输出该链表中倒数第k个结点。
-
[内部保密,禁止传播]天融信数据安全解决方案.pptx
-
matlab即将消失的inline小朋友
-
2014年重庆理工大学《信息管理学》两套期末考试试卷.pdf
-
MySQL 四类管理日志(详解及高阶配置)
-
LeetCode.304 二维区域和检索 - 矩阵不可变
-
CISA培训与认证精讲全套视频.txt
-
用研转岗规划——案例2则
-
Navicat Premium.rar
-
【锐捷校园网用电脑开热点】简明教程
-
MySQL 高可用工具 DRBD 实战部署详解
-
MySQL 数据库权限管理(用户高级管理和精确访问控制)
-
MySQL 事务和锁
-
Linux挂载exfat格式U盘
-
华为1+X认证——网络系统建设与运维(初级)
-
PPT大神之路高清教程