代码改变世界

随笔分类 -  DBA

走向DBA[MSSQL篇] 从SQL语句的角度 提高数据库的访问性能

2011-12-09 17:28 by 熬夜的虫子, 8666 阅读, 收藏, 编辑
摘要: 最近公司来一个非常虎的dba 10几年的经验 这里就称之为蔡老师吧在征得我们蔡老同意的前提下 我们来分享一下蔡老给我们带来的宝贵财富 欢迎其他的dba来拍砖目录1、什么是执行计划?执行计划是依赖于什么信息。2、 统一SQL语句的写法减少解析开销3、 减少SQL语句的嵌套4、 使用“临时表”暂存中间结果5、 OLTP系统SQL语句必须采用绑定变量6、 倾斜字段的绑定变量窥测问题7、 begin tran的事务要尽量地小。8、 一些SQL查询语句应加上nolock9、加nolock后查询经常发生页分裂的表,容易产生跳读或重复读10、聚集索引没有建在表的顺序字段上,该表容易发生页分裂11、使用复合索 阅读全文

走向DBA[MSSQL篇] 针对大表 设计高效的存储过程【原理篇】 附最差性能sql语句进化过程客串

2011-11-11 17:56 by 熬夜的虫子, 2221 阅读, 收藏, 编辑
摘要: 测试的结果在此处本篇详解一下原理设计背景由于历史原因,线上库环境数据量及其庞大,很多千万级以上甚至过亿的表。目标是让N张互相关联的表 按照一张源表为基表,数据搬移归档 这里我们举例N为50 每张表数据5000W最差性能sql进化客串2表KeyName 字段意义 名称等相同 从bug01 表中取出前500条不在bug02 表中的数据最差性能:SELECT TOP 500 a.KeyName FROM bug01 a LEFT JOIN bug02 b on a.KeyName = b.KeyName WHERE (a.KeyName not in (select distinct b.KeyNa 阅读全文

走向DBA[MSSQL篇] 面试官最喜欢的问题 ----索引+C#面试题客串

2011-11-07 13:05 by 熬夜的虫子, 3159 阅读, 收藏, 编辑
摘要: 对大量数据进行查询时,可以应用到索引技术。索引是一种特殊类型的数据库对象,它保存着数据表中一列或者多列的排序结果,有效地使用索引可以提高数据的查询效率。大家面试初级、中级或者高级程序员的时候应该大部分都会被问到这样一些问题,你了解索引吗?你知道索引的分类吗?你知道这些索引的区别吗?你如何去创建有效的索引。本章让大家学会反问面试官 hold住全场。 --_____--友情客串最近面试的文章比较火 客串一下 我只简单问2个问题 看看有多少人能直接回答出来 都是比较基础的1.基类虚函数、派生类重写 与 基类普通函数、派生类覆盖的区别(-____-)2.Using闭包中try catch,异常捕获后抛 阅读全文

走向DBA[MSSQL篇] 详解游标

2011-11-07 10:05 by 熬夜的虫子, 2339 阅读, 收藏, 编辑
摘要: 前篇回顾:上一篇虫子介绍了一些不常用的数据过滤方式,本篇详细介绍下游标。概念简单点说游标的作用就是存储一个结果集,并根据语法将这个结果集的数据逐条处理。观点正因为游标可以将结果集一条条取出处理,所以会增加服务器的负担。再者使用游标的效率远远没有使用默认的结果集效率高,在默认结果集中,从客户端发送到服务器的唯一一个数据包是包含需执行语句的数据包。而在使用服务器游标时,每一个FETCH语句都必须从客户端发送到服务器,然后在服务器中将它解析并编译为执行计划。除非要再sqlserver上进行很复杂的数据操作。基本知识一. SQL Server 2005 支持两种请求游标的方法 1.Transact-. 阅读全文

走向DBA[MSSQL篇] 积跬步行千里

2011-10-25 22:29 by 熬夜的虫子, 1643 阅读, 收藏, 编辑
摘要: 不知道大家对SQL系列的感不感兴趣 先在这里探个路 本文针对的读者为SQL菜鸟 欢迎大牛驳论或者补充既然是探路篇 就先说下数据过滤中的偏门匹配 希望能给大家带来收获create table 虫子的临时表( 编号 varchar(30), 名称 varchar(30), 备注 varchar(100))insert into 虫子的临时表 values('编号01','name01','这是一个奇迹')insert into 虫子的临时表 values('编号02','name02','这是一个神话' 阅读全文

小试RavenDB

2011-06-22 14:49 by 熬夜的虫子, 821 阅读, 收藏, 编辑
摘要: 结果不是很理解 简单分享下了Raven DB是一款基于.net 的文档数据库。其特点为高性能、模式灵活、可扩展NoSQL数据存储。不同于传统的RDMBS,Raven 没有数据行和列。而是存储各种json格式的文档。也就是说你可以不必预先定义存储数据的格式,而是将数据以文档为单位来执行管理。Raven 提供了强大的索引机制、允许定义linq查询。Raven适用的场景:web相关(用户会话、购物车等),因为可以存储和检索单个远程调用请求的数据,持久化会话状态;动态实体(例如用户定制的实体对象、具有很多可选字段等等);大型数据集(例如用户上传的小图片等等)。测试下性能 远没有mongodb好先尝试单 阅读全文

数据库安全

2011-06-22 14:48 by 熬夜的虫子, 535 阅读, 收藏, 编辑
摘要: 小谈一下数据库的安全理论先分3点从全局来看对操作系统的安全需求:防止对DBMS的非法访问和修改,保护存储的数据、文件的安全性,对数据库用户的认证对数据库系统本身的安全需求:用户认证管理、访问控制、审计,数据库的稳定性,保证数据的安全性与完整性,完善的恢复功能,数据加密对数据库应用系统的安全需求:访问控制、认证管理,对数据库的保护防止非法访问和修改,自身的稳定性举一个实例SQL注入:利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,这是SQL注入的标准释义。 所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQ 阅读全文

SQL Server2005索引简介

2011-06-22 14:48 by 熬夜的虫子, 367 阅读, 收藏, 编辑
摘要: 索引简介:索引是与表关联的磁盘上结构,可以加快从表中检索行的速度。索引包含由表中的一列或多列生成的键。这些键存储在一个结构(B 树)中,使 SQL Server 可以快速有效地查找与键值关联的行。索引构造:聚集索引:根据数据行的键值在表中排序和存储这些数据行。索引定义中包含聚集索引列。每个表只能有一个聚集索引,因为数据行本身只能按一个顺序排序。非聚集索引:非聚集索引具有独立于数据行的结构。非聚集索引包含非聚集索引键值,并且每个键值项都有指向包含该键值的数据行的指针。从非聚集索引中的索引行指向数据行的指针称为行定位器。行定位器的结构取决于数据页是存储在堆中还是聚集表中。对于堆,行定位器是指向行的 阅读全文

sql高并发量处理研究

2011-06-22 14:48 by 熬夜的虫子, 2490 阅读, 收藏, 编辑
摘要: 基于web方面的减压已经在博文http://www.cnblogs.com/dubing/archive/2011/06/22/2087025.html中介绍过 就不赘述了 本章我们着重介绍下基于数据库的解决方案 1.分库分表 按业务来算,横向分库、纵向分表。 2.数据库集群和库表散列大型网站都有复 阅读全文

mongodb相关

2011-06-22 14:47 by 熬夜的虫子, 674 阅读, 收藏, 编辑
摘要: 一.简介。 Mongo是一个高性能,开源,无模式的文档型数据库。其名字来自humongous这个单词的中间部分,从名字可见其野心所在就是海量数据的处理。和mysql一样,一个mongod服务可以建立多个数据库。每个数据库可以有多张表,这里的表成为collection,每个collection可以存放多个文档(document),每个文档都以bson(binary json)的形式存放于硬盘中。跟关系型数据库不一样的地方时,他是以单文档为单位存储的,你可以任意的给一个或一批文档新增或删除字段,而不对其他文档造成影响,这就是所谓的schema-free,也是文档型书苦苦最主要的优点。跟一般的key 阅读全文