查看: 34805|回复: 106

专家坐堂:微软SQL Server 2014疑难解析有奖活动结束!

[复制链接]
认证徽章
论坛徽章:
49
现任管理团队成员
日期:2012-10-18 17:10:46妮可·罗宾
日期:2018-04-03 13:57:49
发表于 2014-5-12 13:37 | 显示全部楼层 |阅读模式
专家坐堂:微软SQL Server 2014疑难解析
活动已结束,恭喜以下五位获奖者,请尽快联系itpub运营团队。
buptdream
jieyancai
2009532140
help01
marryold2001



     在大数据时代,非结构化数据的快速增长,对我们的数据库维护和处理提出了更高的挑战。如何通过数据库技术提高数据的存储或运算的能力,如何更好的满足数据处理的需求等,都是目前需要DBA们急速解决的问题。

     SQLServer 2014通过内置的内存驻留技术为所有工作负载提供对关键业务的高性能支撑,能够帮助用户从任意数据中获取更深刻的洞察力,同时提供一致的混合云平台支持。为了更好的帮助DBA进步和回馈广大SQL Server数据库爱好者,微软联合ITPUB社区举行“微软SQL Server 2014疑难解析”提问有奖活动。我们会将本次活动收集到的问题提交给微软官方工程师组成的专家团来解答,获得专家解答的问题提交者还有机会获得价值100元精美礼品一份。

    本期嘉宾:
    饶超伦(Super Rao) : 微软数据库专家  (社区ID: billwr)
    目前担任微软(中国)有限公司应用平台商业智能咨询顾问,从事基于微软数据库产品SQL Server构建商业智能解决方案相关的技术售前支持工作,在EIM(企业信息管理), 数据仓库构建,商业智能方面有丰富的经验。

     赵利超:微软数据库专家(社区ID: gatemc
     目前担任微软中国有限公司技术产品专家(售前),从事微软数据库与相关产品在北方地区的技术售前支持工作,在数据库运维、大数据量下查询的性能调优、数据库开发方面有丰富的经验。

     活动时间:2014年5月12日-2014年5月26日

     活动方式:
     本次活动分三个阶段
     第一阶段(5月12日~5月26日):广泛征集读者问题,大家可以直接跟贴提交自己的问题;
     第二阶段(5月16日~5月27日):每周五我们整理一次大家提交的问题,由微软工程师统一作答,专家团甄选有代表性的典型问题回答(如果问题重复或类似,将以第一个提出问题为主来作答);
     第三阶段(5月30日):将专家团的所有解答公布在贴子中,与广大网友分享。

     我们将从获得专家解答的问题提交者中选择5位幸运者,赠与100元精美礼品一份。

     现在大家可以就在SQL Server2014数据库开发或SQL Server 2014数据库运行维护过程中遇到的问题与难点,以及在学习SQL Server 2014数据库过程中遇到的困境等各方面提出自己的问题!

      您提问,将由微软官方技术工程师亲自作答,与大师的深度对话机会,请大家抓住机会,赶紧提问吧!

整理了516~526部分问题列表:

网友marryold2001问:
Q1、我们关键SQL服务器的配置如下:
cpu:64
memory:256GB
storage: emc san
version: win2008 +sql2008
database: read committedsnapshot
tempdb,datafile,logfile,backupfile 都放置在不同的磁盘上。
查询的所有datapage 都已加载到内存中,假设没有内存压力,data pape 不会flush 到磁盘上,也不考虑recompile, 在这种情况下SQL2014Hekaton 还能够带来多大的性能提高?
答:具体性能提高要看您当前应用的整体架构和具体的业务场景。但是需要明确的是,内存优化的表, 每次访问所节省的IO的时间,对于内存优化的表的其他特性所带来的性能提升来说,比重非常小。个人认为内存优化的表带来的性能提升,最重要的三个原因是:
         1 内存编译的存储过程,T-SQL的执行效率大大提升
         2 取消了锁,采用了行的多版本控制和乐观的并发机制
         3 没有磁盘IO带来的最大好处——避免了闩的争用

Q2、我们使用performance counter来监控win os sql server的性能,但是,这些性能数据提供的是一个整体的情况,比如说CPU突然上升到80%-90%20分钟后恢复正常,SQL2014有没有更好的方法来定位是那条SQL语句造成的?
答:有很多种方式,比如使用SQL Profiler等工具,最方便的,您可以使用活动监视器来查看最近的比较消耗资源的查询。

Q3、我们每天index online rebuild 大概会花掉2-3小时,从凌晨5:00开始,那以后随着数据的迅
速的增长,这个时间也会逐步的增加,除了设置 fragametation threshhold, page
count,sort_tempdb 来排除不需要的table,针对同一张table
SQL2014 SQL2008 indexrebuild online 不是指rebuildoffline,速度有显著的提高吗?
答:目前没有看到官方消息对index rebuild语法内部有更新,不过,如果您考虑在查询性能和索引维护之间做到平衡,可以考虑采用表分区的方式来管理和维护表及索引。

Q4、我们每星期做一次CHECKDB,最大的DB2.3T,要花掉20个小时左右,在SQL2014中,dbcccheckdb 速度有无提高?单纯指内部算法有无优化,从而带来速度的提升?
:考虑使用PHYSICAL_ONLY选项进行每周的数据库检查,使用dbcccheckdb默认选项进行月度检查。具体信息请参考dbcc checkdbmsdn信息。


网友buptdream问:
Q1sql server 2014Cluster是高可用性功能,如何想实现负载均衡机制,有没有办法去配置?
答:可以使用SQL Server 2014Always on的功能——可以支持18备供9个节点做读的负载均衡。SQL Server 2014不支持写的负载均衡。

Q2、在系统中经常进行insert ,update,e,delete对索引来说产生很多碎片,严重影响性能,我除了删除重建外,能不能实现online重建,不给表造成排他锁?
答:请考虑使用reorganize选项,具体参考http://msdn.microsoft.com/zh-cn/library/ms188388.aspx


Q3、在数据库设计的过程中,对sql server 2014来说磁盘分配有什么好的建议?是把日志和数据分开分开存储?还是直接采用raid 10来直接放在一起?
答:不管是从数据安全角度考虑还是性能角度考虑,日志和数据分开存储都是比放在一起更好的选择。此外,tempdb最好也放到和日志、数据文件不同的磁盘上。


Q4、对数据库进行巡检过程中,sql server 2014能不能也生成一份html的性能报告来进行展示数据的工作负载情况?或者我有什么办法可以一目了然的了解负载情况?
答:您可以尝试使用下SQL Server的活动监视器。:)

Q5、在sql server 2014中,有必要对非索引列进行统计信息收集吗?有时候系统资源不是很充足,我应该如何去设计收集策略?目前我们采用的是全部收集,但通常负载比较高。
答:统计信息的收集需要根据您的数据库系统具体的应用和负载等信息综合来看。您可以收集对数据库性能压力比较大的SQL,然后对重点表进行统计信息更新。

Q6、在sql server 2014中,有没有好的办法去捕获死锁的信息进行分析?在最小化锁的争用方面,我们可以需要在应用上做哪些调整?
答:您可以开启数据库的1204跟踪标记(DBCC TRACEON(1204,-1))来追踪死锁信息。减小锁的争用除了尽量采取小事务外,可以考虑使用SQL 2014内存优化的表。

Q7、默认情况下,sql server自动创建统计和自动更新统计设置默认是开启的,那么自动异步统计设置如何去设置,这个开启后对生产系统有什么影响?
答:需要使用sp_configure 系统存储过程更改Auto Statisticsupdate Auto Statistics update Asynchronous 选项。更改后,系统会释放出及时更新统计信息所需资源,但是有可能增加由于统计信息不足(或过旧)而造成无法得到最优的查询执行计划。

Q8、在sql server 2014中,如果一个sql的执行计划经常发生改变,如何为这个sql固定住执行计划?
答:请考虑使用存储过程、hintsp_create_plan_guide存储过程。

Q9sql server建立数据库的时候,将日志的增长方式设定为自动增长,运行时间长了,就会产生文件碎片,从而导致性能严重下降,那么如何去解决这个问题,如果去识别碎片的问题?在2014中有没有自动的机制去识别并清理碎片问题?
答:日志的管理是DBA日常运维工作最重要的工作之一。您需要时刻去关注数据库日志文件的状态。及时的备份和收缩日志文件。此外,请尽量将日志文件拆分成合理的文件数量,并分别放置到多个磁盘上。在SQL 2014中,您可以使用SQL Server代理服务定期的执行一个日志检查和备份的Job来完成周期性的日志检查和备份工作。

Q10sql server 2014需要如何进行配置可以在高并发方面提供良好的性能?
答:可以考虑使用SQL Server 2014的内存优化的表。这个技术在面向高并发方面有非常好的性能表现。


更多问题答案,请下载该文件: Q&A.zip (45.88 KB, 下载次数: 74)
认证徽章
论坛徽章:
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
发表于 2014-5-12 13:41 | 显示全部楼层
本帖最后由 buptdream 于 2014-5-12 15:45 编辑

好活动,支持机会难得,根据自己遇到的问题,提出如下,下一步的工作要把数据库都升级到2014版本。希望专家给以解答,谢谢;
1:公司很多产品现在仍然运行在sql server2000,需要把数据库从sql server2000迁移到2014上面,请问能否直接采用工具进行升级?升级后性能优化方面有哪些需要注意的地方?
2:在公司内部通过getway的方式实现了ms sql2008与oracle之间的数据访问,数据量比较大,效率很低。请问在sql server2014中,有没有这方面的改进?
3:在2014中,内存优化表完全不会再存在锁的概念,请问如何保证数据的一致性?
4:内存优化表需要数据库中存在一个特殊的文件组,以供存储内存优化表的CheckPoint文件,这些CheckPoint文件如果数量很多,如果磁盘性能不好,会不会影响到内存优化表的性能?
5:sql server 2014的内存数据库能不能实现复制和直接镜像功能,提供主备的高性能查询?
6:Hekaton的内存数据库引擎相比普通数据库的引擎,有哪些革命性的提高?
7:我们有一套实时计算系统,对数据的实时性很高,想利用2014的内存数据库,把数据一致性都加载到内存中,进行高性能计算。请问,在迁移前有哪些主要准备的工作?在数据keep到内存中有哪些限制吗?
8:公司为了节约硬件成本,很多系统都在搞虚拟化,缩减硬件服务器的数量。如果把sql server 2014与vmware进行整合,将数据库迁移到虚拟机中,性能上是否会受到影响?专家在类似的资源整合方面有没有好的建议?
9:目前公司大约有30台数据库是运行在sql server 2000和2005上,是否有必要都升级到sql server 2014版本?暂时还没用到2014版本的新功能需求。
10:sql server 2014能否融合闪存卡进行性能提升,在数据库参数方便有哪些需要进行调整满足高性能?
11: sql server 2014中已经可以支持列的聚集索引,我想把oltp中也实现列索引,在满足大量查询的同时也需要提高DML的速度,这样会不会有性能问题?
12:sql server 2014中关于内存的Bucket数量最大可以到多少?是否有有效的参数去调整默认的bucket的数量?在日常应用过程中,是保持默认还是有个建议值?


使用道具 举报

回复
认证徽章
论坛徽章:
49
现任管理团队成员
日期:2012-10-18 17:10:46妮可·罗宾
日期:2018-04-03 13:57:49
发表于 2014-5-12 13:51 | 显示全部楼层
buptdream 发表于 2014-5-12 13:41
好活动,支持

欢迎多多提出自己的问题哟!

使用道具 举报

回复
求职 : 数据库管理员
招聘 : Java研发
认证徽章
论坛徽章:
6350
ITPUB9周年纪念徽章
日期:2014-05-02 10:36:402011新春纪念徽章
日期:2014-12-29 12:11:142010广州亚运会纪念徽章:卡巴迪
日期:2014-08-06 08:44:252012新春纪念徽章
日期:2014-12-29 12:11:142013年新春福章
日期:2014-12-29 12:11:14马上有车
日期:2014-12-29 12:11:14马上有房
日期:2014-12-29 12:11:14马上有钱
日期:2014-12-29 12:11:14马上有对象
日期:2014-12-29 12:11:14马上加薪
日期:2014-12-29 12:11:14
发表于 2014-5-12 14:03 | 显示全部楼层
额,好活动,先支持,一会儿提问~~~

使用道具 举报

回复
求职 : 数据库管理员
招聘 : Java研发
认证徽章
论坛徽章:
6350
ITPUB9周年纪念徽章
日期:2014-05-02 10:36:402011新春纪念徽章
日期:2014-12-29 12:11:142010广州亚运会纪念徽章:卡巴迪
日期:2014-08-06 08:44:252012新春纪念徽章
日期:2014-12-29 12:11:142013年新春福章
日期:2014-12-29 12:11:14马上有车
日期:2014-12-29 12:11:14马上有房
日期:2014-12-29 12:11:14马上有钱
日期:2014-12-29 12:11:14马上有对象
日期:2014-12-29 12:11:14马上加薪
日期:2014-12-29 12:11:14
发表于 2014-5-12 14:08 | 显示全部楼层
内存优化表个人觉得与oracle 的将数据钉在缓冲区差不多?
专家怎么看?

使用道具 举报

回复
求职 : 数据库管理员
招聘 : Java研发
认证徽章
论坛徽章:
6350
ITPUB9周年纪念徽章
日期:2014-05-02 10:36:402011新春纪念徽章
日期:2014-12-29 12:11:142010广州亚运会纪念徽章:卡巴迪
日期:2014-08-06 08:44:252012新春纪念徽章
日期:2014-12-29 12:11:142013年新春福章
日期:2014-12-29 12:11:14马上有车
日期:2014-12-29 12:11:14马上有房
日期:2014-12-29 12:11:14马上有钱
日期:2014-12-29 12:11:14马上有对象
日期:2014-12-29 12:11:14马上加薪
日期:2014-12-29 12:11:14
发表于 2014-5-12 14:10 | 显示全部楼层
如果一个项目实际运行了,如何得知哪个表需要创建内存优化表?
另外,复制,特别是异构复制是sqlserver 比较有特点的功能,这个与内存优化表貌似冲突?有何好的解决方案?

使用道具 举报

回复
论坛徽章:
185
生肖徽章:狗
日期:2006-11-23 04:26:03生肖徽章:羊
日期:2007-09-26 17:08:21生肖徽章:马
日期:2007-09-26 17:08:49授权会员
日期:2007-12-31 19:14:41生肖徽章2007版:牛
日期:2008-03-28 10:02:30奥运会纪念徽章:柔道
日期:2008-04-30 16:28:44奥运会纪念徽章:垒球
日期:2008-05-12 21:28:28奥运会纪念徽章:体操
日期:2008-06-26 10:00:41奥运会纪念徽章:沙滩排球
日期:2008-07-27 12:41:59奥运会纪念徽章:艺术体操
日期:2008-07-30 11:09:47
发表于 2014-5-12 14:13 | 显示全部楼层
1.内存表何时能支持分区表问题?方便与普通表的分区交换等操作?

使用道具 举报

回复
论坛徽章:
185
生肖徽章:狗
日期:2006-11-23 04:26:03生肖徽章:羊
日期:2007-09-26 17:08:21生肖徽章:马
日期:2007-09-26 17:08:49授权会员
日期:2007-12-31 19:14:41生肖徽章2007版:牛
日期:2008-03-28 10:02:30奥运会纪念徽章:柔道
日期:2008-04-30 16:28:44奥运会纪念徽章:垒球
日期:2008-05-12 21:28:28奥运会纪念徽章:体操
日期:2008-06-26 10:00:41奥运会纪念徽章:沙滩排球
日期:2008-07-27 12:41:59奥运会纪念徽章:艺术体操
日期:2008-07-30 11:09:47
发表于 2014-5-12 14:17 | 显示全部楼层
2.内存表有哪些限制条件,是否可以列一下呢,避免大家走弯路。
据测试:内存表不支持创建之后的索引操作,而且创建表必须有主键,使用上限制还是太多了

使用道具 举报

回复
论坛徽章:
185
生肖徽章:狗
日期:2006-11-23 04:26:03生肖徽章:羊
日期:2007-09-26 17:08:21生肖徽章:马
日期:2007-09-26 17:08:49授权会员
日期:2007-12-31 19:14:41生肖徽章2007版:牛
日期:2008-03-28 10:02:30奥运会纪念徽章:柔道
日期:2008-04-30 16:28:44奥运会纪念徽章:垒球
日期:2008-05-12 21:28:28奥运会纪念徽章:体操
日期:2008-06-26 10:00:41奥运会纪念徽章:沙滩排球
日期:2008-07-27 12:41:59奥运会纪念徽章:艺术体操
日期:2008-07-30 11:09:47
发表于 2014-5-12 14:19 | 显示全部楼层
3.ORACLE的12C最新版12.0.1.2已经集成了in memory选件,使用非常方便,只需alter table xxx in memory就可以了,不像sqlserver那么麻烦。而且能支持分区表各种情况,和普通表几乎没什么使用区别。
感觉设计上和oracle差距还是太大了。

使用道具 举报

回复
论坛徽章:
401
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
发表于 2014-5-12 15:10 | 显示全部楼层
jieyancai 发表于 2014-5-12 14:19
3.ORACLE的12C最新版12.0.1.2已经集成了in memory选件,使用非常方便,只需alter table xxx in memory就可以 ...

性能和sql server有比较结果吗?

使用道具 举报

回复

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

本版积分规则 发表回复

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