- 博客(18)
- 收藏
- 关注
原创 达梦数据库-Windows部署dem监控平台
在catalina.bat中追加环境变量 set java_opts= -server -Xms40m -Xmx1024m -XX:MaxPermSize=512m -Djava.library.path=D:\dmdbms\bin;8、修改dem后台实例库配置文件db.xml,把server和port改为自己库的地址。解压dem包,拷贝dem.war至tomcat解压目录webapps下。6、修改tomcat目录下bin\catalina.bat配置文件。1、初始化dem节点后台实例库。
2024-03-17 20:52:47
358
2
原创 达梦数据库-触发器设置列默认值
由于某些安全审计的需要,涉及到数据插入需要记录用户和时间。此情况下,必须使用触发器而不是DEFAULT子句的最主要原因是默认值可以被覆盖,而触发器则永远会存入正确的数据,而不管insert语句传递的值是否正确。通常由触发器解决的常见问题时:在DEFFAULT不适用的情况下设置列的默认值。有两个典型例子:生成顺序混乱的序列的合成对象ID,以及填充基本的审计数据。在这些情况下使用触发器会有不同的功能上的优点。测试结果显示,触发器造成的开销要更多。6、达梦数据库引入强制访问控制,在一定程度上满足个人安全的功能。
2024-03-17 17:55:37
1033
原创 达梦数据库-用PLSQL合并集合
常常会遇到对一张表,筛选不同类别用户,通过union的方式合并查询结果。以此往复,安全结构变得更加复杂,不同子查询的过滤条件开始以奇怪的方式叠加。考虑到很长一段时间以来,SQL开发一直包含UNION/INTERSECT/MINUS子句,通过用户定义的集合来进行类似的操作。结果没有什么特别,但所提出的方法清晰地分离了检查当前用户的特权和处理每个条件的核心步骤。满足以上两个条件的人员列表可以重叠。如果用户是人事,查询返回除自己以外其他员工的相关信息。#如果用户是总经办或者行政,查询返回其他部门员工的相关信息。
2024-03-17 11:50:23
613
原创 达梦数据库-存储过程中涉及内存的SQL优化
显示游标的方式避免了内存的滥用而不知的情况,但如果表是远程表,也会使得往返次数加倍。这意味着,适用于连接数量少且负载重条件下的数据迁移问题的完美解决方案,对有大量并发连接的情况可能并不是最优的。3、其中问题SQL与delete、insert select * from table这的类型语句有关,怀疑存在显著占用内存峰值的潜在危险。如果不做MAX_SESSION_MEMORY限制,是会存在单一会话内存使用过高的风险。
2024-03-16 23:38:57
653
原创 达梦数据库-使用PL/SQL实现动态SQL
这个例子说明一个概念,最好的调优方法是什么都不做,除非某个行动是不可避免的。它还指出,动态地构建SQL语句可显著转移所有开发努力的关注点。可以将任何分解成一组较小的子任务,然后一次解决一个子任务,而不是试图找到一个通用的解决方案。结合这些特征意味着搜索的结果可以表示为对象集合的输出,并且动态生成搜索查询可表达特定的搜索标准。SQL对象集合类型可以通过使用内置的table函数转换成一种规则的SQL集合。针对每一种情况创建定制的SQL语句,而不是建立单一的适用于所有可能的搜索排列的通用SQL语句,会更加有效。
2024-02-17 23:22:36
920
原创 达梦数据库-集合FORALL的使用方法
第三步是启用insert语句,但不是一次启用一条,而是可以利用forall的语句来启用。v_main_tt和v_other_tt集合的值是v_tt集合的ID。以单一的对象集合作为源,再加上次集合里对象所发生的不同动作。这对重要的数据转换活动的数据迁移项目是特别方便的。第二步涉及与先前第一种方式传递源表的方法相同,但这一过程会记录索引集合中的ID,而不是insert语句。首先,应该添加一个新的集合类型来存储对象的ID。1、如果object_type是table,把新行数据加载到test_tab_main中。
2024-02-17 04:16:50
221
原创 达梦数据库-调用SQL内置函数
oracle在视图中引用函数列变为复杂的视图,但如果视图中存在order by则会存在这种完全不同的情况。在性能优化的过程中,会遇到某些性能问题的重要原因由于错误的函数调用导致,即用户自定义函数被调用次数过多(有时会超过预期值的几个数量级)。所以在857次中有1次的调用是没必要的。oracle在SELECT和WHERE子句中,同样的函数单独起作用且不能被重复使用,这就死oracle调用的总数等于10的原因。deterministic它可以做如下设定,对于同样的IN参数,函数的返回值也是一样的。
2024-02-16 20:31:59
1552
原创 达梦数据库-绑定SQL执行计划
3、语句中,排序列和条件列存在组合索引,添加索引访问hint后,发现组合索引访问的cost要高于全表扫描+排序,实际使用组合索引访问的效率要高于全表扫描+排序(索引自身是有序的)。2、语句本身属于弱选择性语句。语句的访问路径,优化器选择了全表扫描+排序,在排序部分cost消耗很大。(1)、删除统计信息,优化器选择索引访问。1、客户生产环境分页查询在收集统计信息后,查询变得缓慢。(2)、客户反馈问题得到优化。5、测试语句(全表扫描+排序)3、创建唯一索引,组合索引。6、测试语句(索引读)
2024-02-04 21:28:11
617
原创 达梦数据库-低效SQL调优(Oracle与达梦对比)
1、问题语句由两大部分组成,通过union all拼接,性能问题出现在第二部分。区别在于第二部分缺少第一部分的某些查询条件,第一部分偏向强选择性,第二部分偏向弱选择性。3、建议在关键表的被驱动列添加to_char()函数,避开使用索引嵌套查询,改为关键表的全表访问。执行计划改为问题表的全表扫描,问题得到改善。2、建议收集了主要表的统计信息,执行计划没有改变,问题没有改善。各分组语句单独执行的执行计划,全表扫+hash(执行效率高)在达梦执行的语句,执行计划为索引读+nest loop。
2024-01-17 21:28:44
728
原创 达梦数据库-with as性能优化记录
2、 判断问题sql在达梦数据库中没有把with as 作为临时temp表使用,从执行计划看,主查询中做了表连接展开,with as内容存在多次查询的情况。失去了with as作为缓存查询的意义。尝试在with as ()中加入rownum>0,执行计划出现heap table缓存表。1、 客户反馈,在with as内容中,Oracle和达梦两边SQL执行效率一致。1、正常达梦数据库with as 的执行计划,HEAP TABLE SCAN,作为缓存表使用,每次cost不变。
2024-01-17 21:00:23
901
原创 达梦数据库分区表新增分区键值interval类型(在线重定义)
1、原分区表没有interval间隔时间参数,在不影响生产业务的情况下,在线修改分区表结构,新增interval类型。在线重定义,新增分区表分区key值interval类型为7天,达到新增数据自动创建分区表的功能。说明:原分区表按7天间隔创建分区,但是不会自动新增分区。1、在线重定义的适用环境还是很多种的,例如大表数据碎片清理、索引创建。4、将原表上的依赖(索引、约束、授权、统计信息等)复制到新表。1、判断目标表是否可以进行在线重定义。5、重定义过程中手动数据同步。2、达梦在线重定义功能。
2024-01-16 17:08:08
1191
原创 count, sum和 if,case when
sum有时也可以理解为count count不一定会得到正确的答案SELECTAcUserID,r.RoundID,sum(if(r.MyGuess=e.ResultGuess, 1,0)) as rightnoFROMtbStockActiveUserGuessRec201609 rLEFT JOIN tbStockActiveGuessResult e ON
2016-10-10 10:04:08
353
转载 sql with as 用法
一.WITH AS的含义 WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。有的时候,是为了让SQL语句的可读性更高些,也有可能是在UNION ALL的不同部分,作为提供数据的部分。 特别对于UNION ALL比较有用。因为UNION ALL的每个部分可能相同,但是如果每个部分都去执行
2016-09-06 14:00:06
353
转载 利用NGINX最大化Python性能第一部分Web服务和缓存
Python 的著名之处在于使用简单方便,软件开发简单,而且据说运行性能优于其它脚本语言。(虽然最新版本的 PHP、PHP 7 可能会与它展开激烈竞争。) 所有人都希望自己的网站和应用程序运行得更快一些。但是,每个网站在流量增长或骤然出现流量峰值时都很容易发生性能问题、甚至宕机(这一般会在服务器最繁忙的时候发生)。此外在运行期间,无论是流量稳步增长还是使用量急速飞涨,几乎所有的网站都会经
2016-08-30 13:31:14
379
转载 mysql 全文索引 FULLTEXT
[原文地址:http://blog.csdn.net/zyz511919766/article/details/12780173]1.概要InnoDB引擎对FULLTEXT索引的支持是MySQL5.6新引入的特性,之前只有MyISAM引擎支持FULLTEXT索引。对于FULLTEXT索引的内容可以使用MATCH()…AGAINST语法进行查询。为了在InnoDB
2016-08-26 16:02:56
1958
转载 mysql字符集问题
问题引入: 我们经常会遇到一些向MySQL数据库中插入中文,但是select出来的时候,却发现是乱码的情况。如我们向表a出入这样一段记录:iinsert into a values('你好helloworld你好','helloworld');可能当你访问它的时候,会发现他的结果变成如下图所示:那怎么样才能解决这种问题呢?通过下文对MySQL中字符
2016-04-25 18:44:03
241
转载 Linux Segmentation Fault 段错误 产生原因调试方法
转载至:http://www.cnblogs.com/panfeng412/archive/2011/11/06/segmentation-fault-in-linux.htmlhttp://blog.sina.com.cn/s/blog_69cc2f0b0100qglr.html1. 段错误是什么一句话来说,段错误是指访问的内存超出了系统给这个程序所设定的内存空间,例
2016-04-15 12:20:51
6190
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人