联机事务处理

访问频率比较高的app接口,在后台写的异常日志会偶尔出现以下错误。 事务(进程 ID 64)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务

有些话、适合烂在心里 提交于 2019-12-17 10:18:01
访问频率比较高的app接口,在后台写的异常日志会偶尔出现以下错误。 事务(进程 ID 64)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务 实所有的死锁最深层的原因就是一个: 资源竞争 表现一: 一个用户A 访问表A(锁住了表A),然后又访问表B 另一个用户B 访问表B(锁住了表B),然后企图访问表A 这时用户A由于用户B已经锁住表B,它必须等待用户B释放表B,才能继续,好了他老人家就只好老老实实在这等了 同样用户B要等用户A释放表A才能继续这就死锁了 解决方法: 这种死锁是由于你的程序的BUG产生的,除了调整你的程序的逻辑别无他法 仔细分析你程序的逻辑, 1:尽量避免同时锁定两个资源 2: 必须同时锁定两个资源时,要保证在任何时刻都应该按照相同的顺序来锁定资源. 表现二: 用户A读一条纪录,然后修改该条纪录 这是用户B修改该条纪录 这里用户A的事务里锁的性质由共享锁企图上升到独占锁(for update),而用户B里的独占锁由于A有共享锁存在所以必须等A释 放掉共享锁,而A由于B的独占锁而无法上升的独占锁也就不可能释放共享锁,于是出现了死锁。 这种死锁比较隐蔽,但其实在稍大点的项目中经常发生。 解决方法: 让用户A的事务(即先读后写类型的操作),在select 时就是用Update lock 语法如下: select * from table1

BI&ETL&OLTP之概念熟悉

怎甘沉沦 提交于 2019-12-10 03:50:16
最近在了解BI方面知识,因为主要关注与数据仓库方面,有关基本概念先学习下:) BI 确切地讲,BI并不是一项新技术,它将数据仓库(DW)、联机分析处理(OLAP)、数据挖掘(DM)等技术与客户关系管理(CRM)等结合起来 应用于商业活动实际过程当中,实现了技术服务于决策的目的;Mark Hammond从管理的角度看待BI,认为BI是从“根本上帮助你把公司的运营数据转化成为高价值的可以获取的信息(或者知识),并且在恰当的时间通过恰 当的手段把恰当的信息传递给恰当的人”。 ETL ETL即数据抽取(Extract)、转换(Transform)、装载(Load)的过程。它是构建数据仓库的重要环节。数据仓库是面向主题 的、集成的、稳定的且随时间不断变化的数据集合,用以支持经营管理中的决策制定过程。数据仓库系统中有可能存在着大量的噪声数据,引起的主要原因有:滥用 缩写词、惯用语、数据输入错误、重复记录、丢失值、拼写变化等。即便是一个设计和规划良好的数据库系统,如果其中存在着大量的噪声数据,那么这个系统也是 没有任何意义的,因为“垃圾进,垃圾出”(garbage in, garbage out),系统根本就不可能为决策分析系统提供任何支持。为了清除噪声数据,必须在数据库系统中进行数据清洗。目前有不少数据清洗研究和ETL研究,但是 如何在ETL过程中进行有效的数据清洗并使这个过程可视化

浅谈数据库和数据仓库

ε祈祈猫儿з 提交于 2019-11-26 10:34:42
一、数据库和数据仓库    二、OLTP和OLAP对比 ①OLTP(OnLine Transaction Processing)和OLAP(OnLine Analytical Processing)    数据库属于OLTP系统( 联机事务处理系统 ),覆盖了企业大部分的日常操作,比如:购物、库存、银行、工资、记账等。比如MySQL、Oracle关系型数据库。    数据仓库属于OLAP系统( 联机分析处理系统 ),比如Hive,HBase等 ②OLTP( 联机事务处理系统 )是面向用户的、用于程序员的事务处理以及客户的查询处理;OLAP( 联机分析处理系统 )是面向市场的,用于知识工人(数据分析人员)的数据分析。 ③OLTP系统( 联机事务处理系统 )的访问由于保证原子性,所以有事务机制和恢复机制;OLAP( 联机分析处理系统 )通常会集成多个异构数据源的结构,数量巨大 ④OLTP系统有较强的事务;OLAP系统一般存储的是历史数据,所以大部分数据都是只读操作。 来源: https://www.cnblogs.com/rmxd/p/11318206.html