专家坐堂:微软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数据库过程中遇到的困境等各方面提出自己的问题!
您提问,将由微软官方技术工程师亲自作答,与大师的深度对话机会,请大家抓住机会,赶紧提问吧!
整理了5月16日~5月26日部分问题列表:
网友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,最大的DB有2.3T,要花掉20个小时左右,在SQL2014中,dbcccheckdb 速度有无提高?单纯指内部算法有无优化,从而带来速度的提升? 答:考虑使用PHYSICAL_ONLY选项进行每周的数据库检查,使用dbcccheckdb默认选项进行月度检查。具体信息请参考dbcc checkdb的msdn信息。
网友buptdream问: Q1、sql server 2014的Cluster是高可用性功能,如何想实现负载均衡机制,有没有办法去配置? 答:可以使用SQL Server 2014的Always on的功能——可以支持1主8备供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固定住执行计划? 答:请考虑使用存储过程、hint、sp_create_plan_guide存储过程。
Q9、sql server建立数据库的时候,将日志的增长方式设定为自动增长,运行时间长了,就会产生文件碎片,从而导致性能严重下降,那么如何去解决这个问题,如果去识别碎片的问题?在2014中有没有自动的机制去识别并清理碎片问题? 答:日志的管理是DBA日常运维工作最重要的工作之一。您需要时刻去关注数据库日志文件的状态。及时的备份和收缩日志文件。此外,请尽量将日志文件拆分成合理的文件数量,并分别放置到多个磁盘上。在SQL 2014中,您可以使用SQL Server代理服务定期的执行一个日志检查和备份的Job来完成周期性的日志检查和备份工作。
Q10、sql server 2014需要如何进行配置可以在高并发方面提供良好的性能? 答:可以考虑使用SQL Server 2014的内存优化的表。这个技术在面向高并发方面有非常好的性能表现。
更多问题答案,请下载该文件:
Q&A.zip
(45.88 KB, 下载次数: 83)
|