开发者论坛

 找回密码
 注册 (请使用非IE浏览器)
查看: 14874|回复: 1

T-SQL语句准则

[复制链接]

0

精华

22

贡献

33

赞扬

帖子
79
软币
936
在线时间
146 小时
注册时间
2013-11-21
发表于 2014-4-15 11:40:51 | 显示全部楼层 |阅读模式
1.数据库要注意设置为:“自动截断日志”
2.日常要看日志是否太大
3.表要有主键,在查询条件字段要有合适的索引
4.如果基础表的信息不是经常改动,你可以考虑在代码的逻辑层(BLL层)做缓存,减轻数据库的压力
5.查询分析器里面的分析,有列出是否使用索引的,你仔细看看
6.数据表设计要分离经常修改的字段和不常改的字段,分开表存储
7.查询中避免使用聚合函数,例如:sum、count 等、不要有计算字段
8.基础表的数值字段,都不要允许为null,最好字符字段也不能为null, 字段定义默认值就可以了
9.尽量不用函数,尤其是查询条件中,因为如果条件用了函数或者计算,索引就无效了,就会表扫描。
10.如果有表扫描,系统会自动上表级锁,出现表级锁,在并发情况下,很容易出现死锁的.
11.在SQLSERVER的日志里能看到死锁日志
12.一般来说,死锁很大可能是因为有引发表扫描的查询,加上并发造成的.很可能你的查询用不上索引,要用分析器查查
13.[针对表数据量每年成倍增加]用分区存储,如果使用系统内置的分区方法,关健是如何选择分区的主键。要规划好主键,这个主键要在所有的查询中作为条件,不能没有这个条件。另外一种就是手动分区,类似财务的年度帐务的概念,有结转动作
14.不过我个人是倾向于手工分表,虽然代码复杂度上升一些,但是能完全控制。
   自动分区如果用得不好,也是一个大麻烦
15.反正char字段问题一大堆,麻烦
16.远程超时分两种情况
   1、确实服务端的处理没返回,这个就要优化服务端处理,尽快返回;
   2、通信上没有返回,这个就要重发
17.程序代码不允许写数据库事务,明细表通过XML传进去处理,如果调用多个存储过程,建立一个总的存储过程接收数据,再调用其他存储过程处理。
18.用批处理代替游标写法

回复

使用道具 举报

0

精华

129

贡献

52

赞扬

帖子
247
软币
1806
在线时间
193 小时
注册时间
2014-5-13
发表于 2015-9-14 15:39:33 | 显示全部楼层
很有用处的,如果有实例说明就更好了
回复

使用道具 举报

Archiver|手机版|小黑屋|开发者网 ( 苏ICP备08004430号-2 )
版权所有:南京韵文教育信息咨询有限公司

GMT+8, 2024-4-26 18:09

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表