查看: 16616|回复: 133

[讨论] 如何使SQL Server高效 赢取百元京东礼品卡

[复制链接]
论坛徽章:
1
优秀写手
日期:2013-12-18 09:29:14
发表于 2013-5-7 09:34 | 显示全部楼层 |阅读模式
是否有能力维持数据库的高效,通常是衡量数据库使用者能力的一个非常重要的维度。任何一款数据库产品,虽然都内置了很多处理机制来自动维持数据库的高效运行,但人为的控制必不可少,SQL Server也不例外。

因此,本周的议题是:
1. 您认为在设计SQL Server对象时,主要会考虑哪些因素来避免出现性能问题?
2. 您认为在T-SQL编写(包括存储过程、函数和视图)上,哪些因素会影响SQL Server效率?
3. 在设计数据库操作程序上,您认为应该注意哪些事项,以确保能够有效地使用数据库?
4. 在您的SQL Server使用过程中,有哪些令您非常困惑的性能问题?


讨论时间:2013.5.7--2013.5.20

活动奖励:活动结束后将会抽取5名会员赠送价值100元的京东礼品卡一张。
QQ截图20130507093802.jpg


pastime_Wang    Obuntu    heaven_sky    avantar   vikou
认证徽章
论坛徽章:
24
技术图书徽章
日期:2013-08-16 14:31:52问答徽章
日期:2013-11-04 08:53:14目光如炬
日期:2013-12-23 06:00:11目光如炬
日期:2013-12-30 06:00:11明星写手
日期:2014-02-22 06:00:12马上有钱
日期:2014-03-31 14:09:05沸羊羊
日期:2015-05-20 12:42:59秀才
日期:2015-06-24 13:05:36秀才
日期:2015-07-13 09:48:14
发表于 2013-5-7 09:47 | 显示全部楼层
欢迎大家来回复

使用道具 举报

回复
论坛徽章:
2
2013年新春福章
日期:2013-04-08 17:42:48蛋疼蛋
日期:2013-04-15 13:43:09
发表于 2013-5-7 09:48 | 显示全部楼层
支持

使用道具 举报

回复
论坛徽章:
25
ITPUB伯乐
日期:2012-05-22 15:05:35慢羊羊
日期:2015-05-08 15:34:02喜羊羊
日期:2015-05-14 12:15:30美羊羊
日期:2015-07-02 22:22:59秀才
日期:2015-08-24 09:51:48天枰座
日期:2015-11-05 16:53:35双鱼座
日期:2015-12-05 19:22:56巨蟹座
日期:2015-12-20 18:46:10摩羯座
日期:2016-05-19 09:54:17ITPUB15周年纪念
日期:2016-10-13 13:15:34
发表于 2013-5-7 09:59 | 显示全部楼层
支持邹老大

使用道具 举报

回复
求职 : 数据库管理员
认证徽章
论坛徽章:
45
2011新春纪念徽章
日期:2011-02-18 11:43:322014年新春福章
日期:2014-04-14 09:54:08马上有对象
日期:2014-03-20 10:10:18马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-02-18 16:42:02技术图书徽章
日期:2014-01-24 10:11:16兰博基尼
日期:2013-12-11 10:38:11ITPUB社区12周年站庆徽章
日期:2013-11-07 10:34:33ITPUB社区12周年站庆徽章
日期:2013-10-17 13:56:592014年新春福章
日期:2014-04-14 09:54:08
发表于 2013-5-7 10:00 | 显示全部楼层
先占个位置

使用道具 举报

回复
认证徽章
论坛徽章:
86
秀才
日期:2015-09-21 09:46:16目光如炬
日期:2014-07-28 06:00:03马上有钱
日期:2014-06-16 15:55:42马上有房
日期:2014-06-16 15:55:422014年世界杯参赛球队: 伊朗
日期:2014-06-13 11:29:242014年世界杯参赛球队:巴西
日期:2014-06-06 14:36:14马上有钱
日期:2014-04-04 13:51:21马上加薪
日期:2014-04-04 13:35:40马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-02-18 16:42:02
发表于 2013-5-7 10:11 | 显示全部楼层
占位更新

使用道具 举报

回复
认证徽章
论坛徽章:
24
技术图书徽章
日期:2013-08-16 14:31:52问答徽章
日期:2013-11-04 08:53:14目光如炬
日期:2013-12-23 06:00:11目光如炬
日期:2013-12-30 06:00:11明星写手
日期:2014-02-22 06:00:12马上有钱
日期:2014-03-31 14:09:05沸羊羊
日期:2015-05-20 12:42:59秀才
日期:2015-06-24 13:05:36秀才
日期:2015-07-13 09:48:14
发表于 2013-5-7 10:17 | 显示全部楼层
hwtong 发表于 2013-5-7 09:59
支持邹老大

这都能看出来本尊啊。厉害

使用道具 举报

回复
认证徽章
论坛徽章:
9607
土豪章
日期:2013-12-31 14:11:39土豪章
日期:2013-12-31 14:11:39阿森纳
日期:2013-06-03 17:00:31阿森纳
日期:2013-10-11 09:27:58法拉利
日期:2013-12-27 15:20:30林肯
日期:2013-12-27 15:19:09法拉利
日期:2013-12-27 15:20:30法拉利
日期:2013-12-27 15:20:30法拉利
日期:2013-12-27 15:20:30法拉利
日期:2013-12-27 15:20:30
发表于 2013-5-7 10:27 | 显示全部楼层
DOUSHI PIANRTEN DE

使用道具 举报

回复
论坛徽章:
65
林肯
日期:2013-09-12 15:57:33马自达
日期:2013-10-11 13:52:31路虎
日期:2014-01-26 14:35:49三菱
日期:2013-11-25 11:21:19现代
日期:2013-08-29 14:39:50雪佛兰
日期:2013-09-12 15:55:00一汽
日期:2013-11-28 14:15:05技术图书徽章
日期:2013-12-11 10:10:51技术图书徽章
日期:2013-12-11 10:11:35技术图书徽章
日期:2014-01-14 10:54:13
发表于 2013-5-7 10:54 | 显示全部楼层
本帖最后由 pastime_Wang 于 2013-5-15 13:50 编辑

好好想想!总结下

为什么总是ORACLE \ SQLSERVER , DB2 INFORMIX 怎么没有讨论呢? 小众的原因 ?

今天趁有空总结了下, 请版主指正:

1. 您认为在设计SQL Server对象时,主要会考虑哪些因素来避免出现性能问题?

应该根据系统架构类型或主要操作进行有针对性的设计: 如 OLTP 、OLAP 、ETL 等

常见的性能无外乎就是CPU、RAM、STORAGE、NETWORK

1.1 尽量避免大事务操作, 提高系统并发能力
1.2 .尽量避免向客户端返回大数据量, 如采用分页
1.3  尽量使用表变量@替代 大量行变化的临时表
1.4 尽量避免游标使用进行大规模数据的连接和遍历
/*******************************************************************************************/
2. 您认为在T-SQL编写(包括存储过程、函数和视图)上,哪些因素会影响SQL Server效率?

虽然proc、view、func可以查询计划重用(预先编译), 但还是要注意其中的语句的编写:

2.1、游标的频繁 "开 / 关", 既消耗资源, 同时会给相关的表加 "锁"
2.2、存储过程中表(临时表)、视图变动,重编译代价很高
2.3、游标遍历多表连接后的"大表", 单行遍历效率低
2.4、使用不合适的数据类型, 如与表字段不一致, 或发生隐式转换 (字符转数字)
2.5、SET NOCOUNT ON , 避免DML操作不必要的网络传输
2.6、SQL写法不好, 造成查询分析器生成不好的查询计划

应该采用函数或存储过程代替复杂的视图,性能更好
/*******************************************************************************************/
3. 在设计数据库操作程序上,您认为应该注意哪些事项,以确保能够有效地使用数据库?

3.1 数据库设计上,  OLTP 系统 应遵循 "3NF",  OLAP 系统 允许适当的冗余减少表连接, 可采用星型模型、雪花型模型
3.2 保证业务逻辑的条件下, 尽量考虑表设计上的易用性和扩展性, 比如 "宽表转换窄表" , 但会牺牲性能
3.3 数据热区上的索引定义、表分区并保持最新的统计分析
3.4 事务操作尽量小而快
3.5 尽量缩小读写操作范围和可重复性, 可采用临时表或表变量等中间过程过渡(我一般不在临时表上增加索引)
3.6 可以采用paralle并行来减小OLAP操作的吞吐量
/*******************************************************************************************/
4. 在您的SQL Server使用过程中,有哪些令您非常困惑的性能问题 ?

其实不只是 SQL Server 在数据库的操作上最频繁的就是 "读和写",
而最容易造成瓶颈的也就是DISK和RAM

读:
1、最常用的就是"索引", 立竿见影, 根据条件语句中的谓词的选择度创建索引, 但可也不是随便加
, 否则反而增加死锁和阻塞发生的几率
2、分区表 、索引视图、聚集索引等增强

写:  行级和事务级的快照都存储在TEMPDB中 (不知架构为什么设计成这样), UNDO \ REDO 自然不太方便

使用道具 举报

回复
认证徽章
论坛徽章:
764
2014年世界杯参赛球队: 加纳
日期:2014-05-20 17:24:592014年世界杯参赛球队:墨西哥
日期:2014-05-20 17:25:142014年世界杯参赛球队: 波黑
日期:2014-05-20 17:27:292014年世界杯参赛球队: 希腊
日期:2014-07-15 11:05:212014年世界杯参赛球队: 阿尔及利亚
日期:2014-07-15 11:05:212014年世界杯参赛球队: 厄瓜多尔
日期:2014-07-15 14:14:452014年世界杯参赛球队: 哥斯达黎加
日期:2014-06-16 15:29:332014年世界杯参赛球队: 智利
日期:2014-06-16 17:03:11 2014年世界杯参赛球队: 德国
日期:2014-06-16 17:10:512014年世界杯参赛球队: 葡萄牙
日期:2014-06-18 09:28:47
发表于 2013-5-7 10:55 | 显示全部楼层
本帖最后由 songmingliang 于 2013-5-7 16:24 编辑

1. 您认为在设计SQL Server对象时,主要会考虑哪些因素来避免出现性能问题?
    逻辑清晰,使应用程序更便于开发。有良好的扩展性和维护性,减少数据冗余等。
2. 您认为在T-SQL编写(包括存储过程、函数和视图)上,哪些因素会影响SQL Server效率?
    没有索引或者没有用到索引、I/O吞吐量小、没有创建计算列导致查询不优化 、锁或者死锁、查询语句不够优化等
3. 在设计数据库操作程序上,您认为应该注意哪些事项,以确保能够有效地使用数据库?
    理解系统目标、业务流程、逻辑,正确地利用数据库的特性。
4. 在您的SQL Server使用过程中,有哪些令您非常困惑的性能问题?
   
   并发性

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 
京ICP备09055130号-4  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表