摘要:
虽然查询速度慢的原因很多,但是如果通过一定的优化,也可以使查询问题得到一定程度的解决。 查询速度慢的原因很多,常见如下几种:没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)I/O吞吐量小,形成了瓶颈效应。没有创建计算列导致查询不优化。内存不足网络速度慢查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)sp_lock, sp_who, 活动的用户查看,原因是读写竞争资源。返回了不必要的行和列查询语句不好,没有优化 可以通过如下方法来优化查询 :把数据、日志、索引放到不同的I/O设备上,增加读取速度,以前可以.. 阅读全文
posted @ 2012-09-14 14:37
左正
阅读(249)
评论(0)
推荐(0)
摘要:
先分3点从全局来看对操作系统的安全需求:防止对DBMS的非法访问和修改,保护存储的数据、文件的安全性,对数据库用户的认证 对数据库系统本身的安全需求:用户认证管理、访问控制、审计,数据库的稳定性,保证数据的安全性与完整性,完善的恢复功能,数据加密 对数据库应用系统的安全需求:访问控制、认证管理,对数据库的保护防止非法访问和修改,自身的稳定性举一个实例SQL注入:利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,这是SQL注入的标准释义。 所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中 阅读全文
posted @ 2012-09-14 14:06
左正
阅读(403)
评论(0)
推荐(0)
摘要:
概念简单点说游标的作用就是存储一个结果集,并根据语法将这个结果集的数据逐条处理。观点正因为游标可以将结果集一条条取出处理,所以会增加服务器的负担。再者使用游标的效率远远没有使用默认的结果集效率高,在默认结果集中,从客户端发送到服务器的唯一一个数据包是包含需执行语句的数据包。而在使用服务器游标时,每一个FETCH语句都必须从客户端发送到服务器,然后在服务器中将它解析并编译为执行计划。除非要再sqlserver上进行很复杂的数据操作。基本知识一. SQL Server 2005 支持两种请求游标的方法 1.Transact-SQL (支持 SQL-92); 2.数据库应用程序编程接口(API).. 阅读全文
posted @ 2012-09-14 14:01
左正
阅读(895)
评论(0)
推荐(0)
摘要:
设计背景由于历史原因,线上库环境数据量及其庞大,很多千万级以上甚至过亿的表。目标是让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.KeyName From bug02)) 阅读全文
posted @ 2012-09-14 13:44
左正
阅读(214)
评论(0)
推荐(0)
摘要:
目录1、什么是执行计划?执行计划是依赖于什么信息 2、 统一SQL语句的写法减少解析开销 3、 减少SQL语句的嵌套 4、 使用“临时表”暂存中间结果 5、 OLTP系统SQL语句必须采用绑定变量 6、 倾斜字段的绑定变量窥测问题 7、 begin tran的事务要尽量地小 8、 一些SQL查询语句应加上nolock 9、加nolock后查询经常发生页分裂的表,容易产生跳读或重复读 10、聚集索引没有建在表的顺序字段上,该表容易发生页分裂 11、使用复合索引提高多个where条件的查询速度 12、使用like进行模糊查询时应注意尽量不要使用前% 13、SQL Server 表连接的三种方式 1 阅读全文
posted @ 2012-09-14 11:22
左正
阅读(159)
评论(0)
推荐(0)

浙公网安备 33010602011771号