数据库
尹自强
这个作者很懒,什么都没留下…
展开
-
SQL查询优化技术
导致SQL查询语句性能低下的3个常见原因以及优化方法1.影响SQL性能的原因 影响SQL性能的因素很多,如初始化参数设置不合、导入了不准确的系统统计数据从而影响程序的正确判断等。纯粹从SQL语句出发,影响SQL性能的不外乎以下3个重要原因: (1)在大记录集上进行高成本操作,如使用了引起排序的谓词等。 (2)未建立恰当的索引,导致转载 2011-10-28 00:59:59 · 510 阅读 · 0 评论 -
分布式设计与开发(二)------ 几种必须了解的分布式算法
分布式设计与开发中有些疑难问题必须借助一些算法才能解决,比如分布式环境一致性问题,感觉以下分布式算法是必须了解的(随着学习深入有待添加):Paxos算法一致性Hash算法Paxos算法1)问题描述分布式中有这么一个疑难问题,客户端向一个分布式集群的服务端发出一系列更新数据的消息,由于分布式集群中的各个服务端节点是互为同步数据的,所以运行完客户端这系列消息指令后各服务端节点的转载 2013-02-21 22:20:04 · 425 阅读 · 0 评论 -
分布式设计与开发(四)------ 数据拆分
一个大型系统里各个环节中最容易出性能和可用性问题的往往是数据库,因此分布式设计与开发的一个重要领域就是如何让数据层具有可扩展性,数据库的扩展分为Scale Up 和Scale Out,而Scale Up说白了是通过升级服务器配置来完成,因此不在分布式设计的考虑之内。Scale Out是通过增加机器的方式来提升处理能力,一般需要考虑以下两个问题:数据拆分数据库高可用架构数据拆分是最先会被转载 2013-02-21 22:26:35 · 244 阅读 · 0 评论 -
程序员老鸟写sql语句的经验之谈
做管理系统的,无论是bs结构的还是cs结构的,都不可避免的涉及到数据库表结构的设计,sql语句的编写等。因此在开发系统的时候,表结构设计是否合理,sql语句是否标准,写出的sql性能是否优化往往会成为公司衡量程序员技术水平的标准。我们程序员不是dba,不需要时刻关注sql运行时间,想方设法优化表结构,存储空间,优化表读取速度等等,但是在开发系统时,时刻保持优良的写sql语句的作风是很有必要的,转载 2013-03-25 13:10:46 · 404 阅读 · 0 评论 -
三种东西永远不要放到数据库里
我已经在很多演讲里说过,改进你的系统的最好的方法是先避免做“蠢事”。我并不是说你或你开发的东西“蠢”,只是有些决定很容易被人们忽略掉其暗含 的牵连,认识不到这样做对系统维护尤其是系统升级带来多大的麻烦。作为一个顾问,像这样的事情我到处都能见到,我还从来没有见过做出这样的决定的人有过好 的结果的。图片,文件,二进制数据既然数据库支持BLOB类型的数据,把文件塞进BLOB字段里一定没有错了!?转载 2013-03-25 13:04:53 · 352 阅读 · 0 评论 -
浅谈千万级PV/IP规模高性能高并发网站架构
文章架构简图: 高并发访问的核心原则其实就一句话“把所有的用户访问请求都尽量往前推”。如果把来访用户比作来犯的"敌人",我们一定要把他们挡在800里地以外,即不能让他们的请求一下打到我们的指挥部(指挥部就是数据库及分布式存储)。如:能缓存在用户电脑本地的,就不要让他去访问CDN。 能缓存CDN服务器上的,就不要让CDN去访问源(静态服务器)了。能访问静态服务器的,就不要去访问动态转载 2013-05-27 10:20:22 · 570 阅读 · 0 评论 -
SQL编码中注意的性能问题
1、选择合适的数据类型为列选择最小化的数据类型如果一列中的文本长度不一,使用VARCHAR而不是CHAR不存储Unicode不要使用NVARCHAR或者NCHAR如果一行的长度不超过8000,使用VARCHAR而不是TEXT对于仅存数字的列要使用数字类型而不要用字符类型不要使用字符串类型存储日期数据。2、谨慎使用触发器保持触发器内的代码最小化可能的情况下尽量用其转载 2014-04-29 17:48:43 · 478 阅读 · 0 评论 -
SQL SERVER BACKUP DATABASE 加快备份速度方法
很多SQL SERVER DBA 在备份的时候,一般的撰写格式,都是如下BACKUP DATABASE AdventureWorksTO DISK = 'Z:\SQLServerBackups\AdvWorksData.bak'WITH FORMAT,CHECKSUM;对于比较大的数据库,备份时间比较长,最近在研究了BACKUP DATABASE 参数后,发现可以通转载 2014-04-21 16:53:39 · 1081 阅读 · 0 评论 -
sp_MSforeachtable使用方法
1)说明系统存储过程sp_MSforeachtable和sp_MSforeachdb,是微软提供的两个不公开的存储过程,从ms sql 6.5开始。存放在SQL Server的MASTER数据库中。2)参数说明:DECLARE @command1 nvarchar(2000), --第一条运行的SQL指令@replacechar nchar(1) = N'?', --指定的占位转载 2014-04-21 17:19:51 · 475 阅读 · 0 评论 -
SQL Server判断对象是否存在
1 判断数据库是否存在Sql代码 if exists (select * from sys.databases where name = ’数据库名’) drop database [数据库名] if exists (select * from sys.databases where name = ’数据库名’) drop database [数据库名]2转载 2016-03-02 11:26:21 · 321 阅读 · 0 评论 -
常用的数据统计Sql 总结
1. 统计各个条件下的数据selectBatchId,sum(CardSum) 总金额,sum(case when Status=1 then CardSum else 0 end) as 已使用,sum(case when Status=2 then CardSum else 0 end) as 已冻结 from GiftCard group by BatchId2. 统计每日转载 2016-08-03 09:56:42 · 10747 阅读 · 0 评论 -
常用的数据统计Sql 总结
1. 统计各个条件下的数据selectBatchId,sum(CardSum) 总金额,sum(case when Status=1 then CardSum else 0 end) as 已使用,sum(case when Status=2 then CardSum else 0 end) as 已冻结 from GiftCard group by BatchId2. 统计转载 2016-09-18 11:23:53 · 330 阅读 · 0 评论 -
构建高性能web之路 ------ mysql读写分离实战
一个完整的mysql读写分离环境包括以下几个部分:应用程序clientdatabase proxydatabase集群在本次实战中,应用程序client基于c3p0连接后端的database proxy。database proxy负责管理client实际访问database的路由策略,采用开源框架amoeba。database集群采用mysql的master-slave的replic转载 2013-02-21 22:30:47 · 377 阅读 · 0 评论 -
分布式设计与开发(五)------ 数据库高可用架构
数据库高可用架构对于我们这些应用端开发的人来说是一个比较陌生的领域,是在具体的数据库产品之上搭建的环境,需要像DBA这样对数据库产品有足够的了解才能有所涉及,虽然不能深入其中,但可以通过一些经典的高可用架构学习其中的思想。就我所了解到的有以下几种:MySQL ReplicationMySQL ClusterOracle RACIBM HACMPOracle ASMMySQL Repli转载 2013-02-21 22:28:01 · 231 阅读 · 0 评论 -
分布式设计与开发(三)------ 高一致性服务ZooKeeper
分布式环境中大多数服务是允许部分失败,也允许数据不一致,但有些最基础的服务是需要高可靠性,高一致性的,这些服务是其他分布式服务运转的基础,比如naming service、分布式lock等,这些分布式的基础服务有以下要求:高可用性高一致性高性能对于这种有些挑战CAP原则的服务该如何设计,是一个挑战,也是一个不错的研究课题,Apache的ZooKeeper也许给了我们一个不错的答案。Zo转载 2013-02-21 22:23:50 · 247 阅读 · 0 评论 -
SQL Server 2005控制用户权限访问表
一、需求在管理数据库过程中,我们经常需要控制某个用户访问数据库的权限,比如只需要给这个用户访问某个表的权限,甚至是CRUD的权限,更小粒度的还可以去到某几个字段的访问权限。写这篇文章就是说明下这个操作过程。其实这只是SQL Server权限管理很简单的一小块,有些地方并没有深入理解和讲述,只是希望对一些刚入门的童鞋有帮助,其它大侠就当是:我当堂吓一跳,然后得啖笑。二、操作步骤1.转载 2012-03-11 21:37:51 · 210 阅读 · 0 评论 -
提高SQL Server数据库效率常用方法
在现在互联网应用程序开发过程中,常常会发现查询或者操作数据速度慢。其原因很多,常见如下几种: 1、没有索引或者没有用到索引(这是数据库设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、内存不足 4、网络速度慢 5、查询出的数据量过大(可以采用多次查询) 6、锁或者死锁(这也是程序设计的缺陷) 7、返回了不必要的行和列 8、查询语句不好,没有优化转载 2012-04-20 12:03:38 · 440 阅读 · 0 评论 -
如何加快查询,优化数据库
如何加快查询速度?1、升级硬件 2、根据查询条件,建立索引,优化索引、优化访问方式,限制结果集的数据量。3、扩大服务器的内存4、增加服务器CPU个数5、对于大的数据库不要设置数据库自动增长,它会降低服务器的性能6、在查询Select语句中用Where字句限制返回的行数,避免表扫描,如果返回不必要的数据,浪费了服务器的I/O资源,加重了网络的负担降低性能。如果表很大,在表扫描转载 2012-04-20 12:03:06 · 205 阅读 · 0 评论 -
数据库查询优化技术
数据库系统是管理信息系统的核心,基于数据库的联机事务处理(OLTP)以及联机分析处理(OLAP)是银行、企业、政府等部门最为重要的计算机应用之一。从大多数系统的应用实例来看,查询操作在各种数据库操作中所占据的比重最大,而查询操作所基于的SELECT语句在SQL语句中又是代价最大的语句。举例来说,如果数据的量积累到一定的程度,比如一个银行的账户数据库表信息积累到上百万甚至上千万条记录,全表扫描一次往转载 2012-05-21 23:30:20 · 224 阅读 · 0 评论 -
如何让你的SQL运行得更快
人们在使用SQL时往往会陷入一个误区,即太关注于所得的结果是否正确,而忽略了不同的实现方法之间可能存在的性能差异,这种性能差异在大型的或是复杂的数据库环境中(如联机事务处理OLTP或决策支持系统DSS)中表现得尤为明显。笔者在工作实践中发现,不良的SQL往往来自于不恰当的索引设计、不充份的连接条件和不可优化的where子句。在对它们进行适当的优化后,其运行速度有了明显地提高!下面我将从转载 2012-05-21 23:34:19 · 195 阅读 · 0 评论 -
大型ERP等数据库系统常见几种设计
1. 自增长 primary key 采用自增长 primary key主要是性能。早期的数据库系统,经常采用某种编号,比如身份证号码,公司编号等等作为数据库表的 primary key。然而,很快,大家就发现其中的不利之处。 比如早期的医院管理系统,用身份证号码作为病人表的 primary key。然而,第一,不是每个人都有身份证;第二,对于国外来的病人,不同国转载 2012-07-27 10:02:33 · 436 阅读 · 0 评论 -
规范化-数据库设计原则
摘要IBM 为社区提供了 DB2 免费版本 DB2 Express-C,它提供了与 DB2 Express Edition 相同的核心数据特性,为构建和部署应用程序奠定了坚实的基础。关系型数据库是当前广泛应用的数据库类型,关系数据库设计是对数据进行组织化和结构化的过程,核心问题是关系模型的设计。对于数据库规模较小的情况,我们可以比较轻松的处理数据库中的表结构。然而,随转载 2012-07-27 10:04:17 · 292 阅读 · 0 评论 -
针对数据库开发人员的性能调优小提示
性能调优并不是一件简单的事情,根本没有任何万能方案,但是你可以使用一些基本原则去实施.在一般的认为中,性能调优是DBA的职责.但是实际上,DBA是没有时间去仔细检查对存储过程所做的每个变更.所以学会一些基本的调优或许可以帮你省去重写代码的时间.这里我列出了15个事项,开发人员在写代码的时候应该理所当然的考虑这些事项以达到性能调优的目的.这些是SQLServer性能上的一些小技巧-比较简转载 2012-09-29 16:19:20 · 470 阅读 · 0 评论 -
经验之谈
程序不进行类型转换,但必须处理字符,数据插入数据库时自动适配增删改操作和查询操作分开存放数据库字段的说明尽量详细工厂类中抽象,数据库访问类继承工厂需要使用标签时,标签内尽量只包含需要回发的控件(尽量少),有利于减少页面__VIEWSTATE值、简洁页面。不要信任用户的输入,要对用户的输入进行校验,可以通过正则表达式,或限制长度,对单引号和双"-"进行转换等。 不要使用动态拼装SQL,可原创 2011-12-20 13:21:08 · 214 阅读 · 0 评论 -
聚集索引和非聚集索引
聚集索引适用情况 1、含有大量非重复值的列。 2、使用BETWEEN,>,>=,<或<=返回一个范围值的列 3、被连续访问的列 4、返回大型结果集的查询 5、经常被使用连接或GROUP BY子句的查询访问的列 下面的表总结了何时使用聚集索引或非聚集索引:动作描述使用聚集索引使用非聚集索引列经常被分组原创 2012-12-25 12:03:47 · 294 阅读 · 0 评论 -
什么才是高性能的SQL语句
1、首先要搞明白什么叫执行计划? 执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生欀如一条SQL语句如果用来从一个10万条记录的表中查1条记录,那查询优化器会选择“索引查找”方式,如果该表进行了归档,当前只剩下5000条记录了,那查询优化器就会改变方案,采用 “全表扫描”方式。 可见,执行计划并不是固定的,它是“个性化的”。产生一个转载 2012-12-25 10:42:44 · 325 阅读 · 0 评论 -
分布式设计与开发(一)------ 宏观概述
在IDF05(Intel Developer Forum 2005)上,Intel首席执行官Craig Barrett就取消4GHz芯片计划一事,半开玩笑当众单膝下跪致歉,给广大软件开发者一个明显的信号,单纯依靠垂直提升硬件性能来提高系统性能的时代已结束,分布式开发的时代实际上早已悄悄地成为了时代的主流,吵得很热的云计算实际上只是包装在分布式之外的商业概念,很多开发者(包括我)都想加入研究云计算这转载 2013-02-21 22:17:52 · 240 阅读 · 0 评论 -
TFS统计编码行数语句
SELECT TeamProjectProjectNodeName 项目名称 ,checkedinbyname 开发人员 ,SUM([LinesAdded]) AS 代码添加行数 ,SUM([LinesModified]) AS 代码修改行数 ,SUM([LinesAdded]+[LinesModified]) AS 代码变动行数转载 2017-07-25 14:15:48 · 1330 阅读 · 0 评论