数据库
leandzgc
大家好!我叫张贵成,不过我个人比较喜欢人家叫我张乐(*^__^*) 嘻嘻……我现在是一名java初学者,请多多指教!!!本人Q:406163956,大家相互支持!
展开
-
数据库小技巧之-带级联关系地备份视图创建脚本(支持postgresql、greenplum)
一、前言我们数据中心应用升级一直有个“顽疾”:各地区每次现场进行升级基本都会丢失一部分自定义视图(公司其他基于数据中心的应用单独创建的,数据中心升级脚本中不包含这些DDL脚本),每次升级完毕还原这些自定义视图都很费劲。其实本来现场按版本进行增量升级也不会有这个问题(因为不会删库),但是现场每次升级中间迭代的版本都比较多,所以每个地区升级基本都是选择删库并执行目标版本的全新脚本(数据中心本身不生产数据,随时可以从数据源提取最新数据,所以不用考虑历史数据的问题),这样会导致丢失了所有非数据中心自带的视图信息原创 2020-11-08 06:13:50 · 425 阅读 · 0 评论 -
sybase连接超时解决方案之--调整stack size及stack gurad size大小
背景最近几天现场老反馈某个院的采集任务失败了,报错原因基本都是连接断开,关键是连续好几天,都是同一个地区出问题,这就很尴尬了。拉着好几个研发团队负责人一起讨论了一下,准备收集近期的运行情况及日志,深入分析一下根因,并规划后续解决方案。但也不能影响测试呀(本来定的本月完整集成测试的复测,且达到通过的标准的),然后让现场重新跑了一下采集任务,但是…依然是那个地区失败,依然是超时,但人家现场用工具操...原创 2019-12-27 02:17:04 · 1043 阅读 · 0 评论 -
异常断电导致索引数据未持久化成功,引发索引无法命中记录,顺序扫描可命中的问题排查分享
不知道应该起个啥标题最近经手现场一个因意外断电停机导致索引数据未写入,但数据已写入,特定数据使用索引无法检索到,且程序中未判空导致NPE的问题。感觉有必要跟大家提个醒,给大家分享一下。要不标题叫排查过程也行1、有个定时任务定时扫描需要OCR的文书记录,并交给执行器去OCR(现在判断,这一步应该是走的全表扫描,或者没有用到主键索引)2、每个执行器拿一条记录去取完整的文书表记录,调用O...原创 2019-12-06 03:28:02 · 190 阅读 · 0 评论 -
处理工单也能学到新东西--一个疑难问题的定位过程(线程池应用不合理+大表索引失效)
一、背景先是现场反馈隔一段时间程序就OOM了,需要重启,小伙伴通过dump文件及MAT工具定位到某个定时任务生成了大量的java对象导致OOM,但是为啥会生成这么多对象,分析了一段时间也没找到根因。了解到在最新版应用中增加了一个配置,可以关闭这个功能(现场本身也没用到这个功能),升级即可避免该问题,但是我们要升级吗?不,我们要先尝试找到根因,因为新版本只是增加了一个开关,并不是解决了这个问题,...原创 2019-11-19 22:36:57 · 269 阅读 · 0 评论 -
真正的让greenplum 4.x支持uuid 使用python扩展
step1:为数据库添加python支持先保证$GPHOME/ext/中包含python文件夹,否则无法增加python扩展执行扩展命令(注意是在shell中执行,不是进入gp的命令行)createlang plpythonu -d fb09注意:上面的命令中只需要替换 fb09为需要扩展的数据库即可step2:创建gp自定义函数create or replace f...原创 2019-11-13 18:49:57 · 1074 阅读 · 0 评论 -
校验全库缺失某列索引的全部表列表-PG版本
性能优化时,我们有可能会发现某个库某个表的必备索引缺失,而这个索引还是全库全相关表都必须包含的一个,那么我们就需要一个方法来检索库中其他表是否缺失该索引。PG版本解决方法如下--创建函数CREATE OR REPLACE FUNCTION public.queryLostColIndex(dbname VARCHAR(300), schema_prefix VARCHAR(300),...原创 2019-11-13 17:26:01 · 158 阅读 · 0 评论 -
查询全库所有表各表总记录数-PG版本
--创建函数CREATE OR REPLACE FUNCTION public.queryTableRecord(dbname VARCHAR(300), schema_prefix VARCHAR(300)) RETURNS "pg_catalog"."void" AS $BODY$DECLARE schemaQueryRec RECORD; tableQueryRec REC...原创 2019-11-13 17:22:15 · 1771 阅读 · 0 评论 -
校验全库缺失某列索引的全部表列表-sybase ase版本
--创建函数USE tempdbGOIF OBJECT_ID ('dbo.P_QueryLostColIndex') IS NOT NULL DROP PROCEDURE dbo.P_QueryLostColIndexGOCREATE PROCEDURE P_QueryLostColIndex( @dbname_prefix VARCHAR(300), -...原创 2019-11-13 17:18:14 · 120 阅读 · 0 评论 -
查询全库所有表各表总记录数-sybase版本
--创建函数USE tempdbGOIF OBJECT_ID ('dbo.P_QueryTableRecord') IS NOT NULL DROP PROCEDURE dbo.P_QueryTableRecordGOCREATE PROCEDURE P_QueryTableRecord( @dbname_prefix VARCHAR(300) --数...原创 2019-11-13 17:16:48 · 1973 阅读 · 0 评论 -
随机生成人员姓名(脱敏处理)-SQL Server版本
正常情况下的随机生成人员姓名思路是先定义好姓和名,然后限定随机数范围,取对应的姓和名数组下标并拼接即可,这一篇帖子的处理方式也不例外。但sql server本身并没有数组类型,所以我们需要找一个可以替代数组的方法。已知的方法有实体表、临时表、XML、截取字符串这几种方式,他们各自适用于不同的场景,本帖子以实体表来代替数组(由使用者自行决定其生命周期)--使用tempdb库use temp...原创 2019-11-13 17:11:00 · 3455 阅读 · 0 评论 -
数据库内核月报-2017年03期-Greenplum的分布键设计
Greenplum的分布键设计问题背景最高执行指挥项目组在使用GP的过程中遇到两类问题数据插入缓慢 多表join查询效率低下问题1:数据插入缓慢现象是3000条数据插入要7分钟左右。排查过程 查看数据分布情况 fb09_1=# select gp_segment_id, count(*) from db_xsys.t_xsys group by 1 order ...原创 2019-11-13 11:08:59 · 271 阅读 · 0 评论 -
数据库内核月报-2017年04期-合理利用数据库特性实现需求之自连接
合理利用数据库特性实现需求之自连接需求描述数据库环境 MSSQL Server 2008 R2 需求描述 给某表限定日期范围条件的前提下,检索出每个用户的日期中断区间记录 场景模拟 假设数据(日期范围为2017-01-01至2017-01-31): C_UID | C_DATEBEGIN | C_DATEEND -——————————————————————— 1 ...原创 2019-11-12 19:36:12 · 171 阅读 · 0 评论 -
数据库内核月报-2017年05期-最佳实践 MSSQLServer2008数据增量同步
最佳实践 MSSQLServer2008数据增量同步问题来源项目组要实现两个非同构数据库的数据同步功能,为满足时间要求,最好是支持增量同步。方案决策使用数据库自带的发布订阅实现 因为源库和目标库不同构,实现起来比较复杂,并且客户环境的网络不好,在以前的使用案例中,容易出现队列阻塞或线程宕掉的情况。 利用数据库的特性实现 利用数据库特性,性能上有一定的保障。实现简单,开发效率高...原创 2019-11-12 19:35:11 · 175 阅读 · 0 评论 -
log4jdbc-log4j2浅析(sqlfx客户端采集日志的来源)-java 输出sql执行时间
前言我们公司现在强制要求每个项目必须集成sqlfx客户端,然后把项目输出的jdbc日志收集到sqlfx服务器端进行分析,根据配置将分析报告以邮件的形式发给相关人员。但是大家有没有思考过logback为何可以把sql执行时间输出到日志文件中呢?或者有没有遇到过明明把公司的logback.xml(logback-spring.xml)模板复制到项目中了,为啥别的日志都输出好好的,偏偏就没有输出s...原创 2019-11-12 19:21:20 · 1566 阅读 · 0 评论 -
函数明明存在应用却报错不存在 function xxx does not exist
错误信息:function xxx does not exist. No function matches the given name and argument types. You might need to add explicit type casts函数找不到可能的原因1、当前schema下不存在对应的函数(例如未增加schema名称,或当前连接的schema非public,且函数...原创 2019-11-12 18:08:05 · 86866 阅读 · 1 评论 -
科普一下开窗函数之row_number()
瞎说的,非科普贴,就是给大家分享个小例子,希望给有类似需求的童鞋提供一些思路。需求场景有父表A和子表B,需要根据指定规则生成一个经过处理的结果集子表B中需要增加一个虚拟序号列(原来没有),且是以某个时间字段排序后的序号虚拟序号的长度为三位固定字符串,不足三位时前面补0coding--创建父表create table t_parent(c_id char(32),c_n...原创 2019-11-12 17:58:10 · 634 阅读 · 0 评论 -
异常断电导致索引数据未持久化成功,引发索引无法命中记录,顺序扫描可命中的问题排查分享
不知道应该起个啥标题最近经手现场一个因意外断电停机导致索引数据未写入,但数据已写入,特定数据使用索引无法检索到,且程序中未判空导致NPE的问题。感觉有必要跟大家提个醒,给大家分享一下。要不标题叫排查过程也行1、有个定时任务定时扫描需要OCR的文书记录,并交给执行器去OCR(现在判断,这一步应该是走的全表扫描,或者没有用到主键索引)2、每个执行器拿一条记录去取完整的文书表记录,调用O...原创 2019-11-12 17:53:04 · 195 阅读 · 0 评论 -
校验全库缺失某列索引的全部表列表-SQL Server版本
在大型系统的表结构设计中,可能所有层级子表都会冗余根级主表的记录,这样在后续使用某一条根表相关数据时,只需要一个条件过滤即可。但是如果新人或因为某些不可控原因,导致这个冗余列索引缺失,这会对后续数据使用带来很大影响。如何知道哪些有这个字段的表没有创建索引呢?下面给出了解决办法!一、创建函数USE tempdbGOIF OBJECT_ID ('dbo.PR_QUERY_COL_INDEX_LO...原创 2018-04-19 14:58:08 · 248 阅读 · 2 评论 -
查询全库所有表各表总记录数-SQL Server版本
一、创建函数USE tempdbGOIF OBJECT_ID ('dbo.PR_QUERY_TABLE_RECORD') IS NOT NULL DROP PROCEDURE dbo.PR_COUNT_TABLE_RECORDGOCREATE PROCEDURE PR_COUNT_TABLE_RECORD( @dbname_prefix VARCHAR(3...原创 2018-04-19 14:48:20 · 543 阅读 · 0 评论 -
比对不同服务器,同环境,库结构差异-SQL Server版本
一、创建过程USE [TEMPDB]GO-- =============================================-- Author: <LE>-- Create date: <2017-06-28>-- Description: <比较两个实例之间的库结构差异>-- 本地缺失:不处理...原创 2018-04-19 14:41:14 · 344 阅读 · 0 评论 -
GP greenplum search_path 修改后不生效的问题
目前已知方法(可根据自己实际需要选择适合自己的)1. 在连接中直接使用set search_path to xxx是可以针对本连接生效的,但是弊端就是仅对当前连接生效,重新连接数据库则被还原了。2. 若想持久化的修改某个数据库中search_path可以使用alter database databaseName to xxx(直接修改postgres.conf跟这里效果应该是一样的);然后重启数据...原创 2018-03-17 03:33:00 · 1995 阅读 · 2 评论