在你的DBA职业里,你们谁有用过DBCC INPUTBUFFER命令,来获得已经提交到SQL Server特定会话的最后SQL语句?请举手!大家都用过! 我们都知道DBCC命令有点尴尬,因为你不能在T-SQL查询里调用它们,你也不能关联它们的输出到其它DMV/DMF.例如你想为每个用户会话返回最后一个执行的SQL语句.... sys.dm_exec_input_buffer 在SQL Server 2016里,事情就变得简单多,因为微软为你提供了一个新DMFsys.dm_exec_input_b…
几个星期前,SQL Server 2016的最新CTP版本已经发布了:CTP 2.4(目前已经是CTP 3.0).这个预览版相比以前的CTP包含了很多不同的提升.在这篇文章里我会谈下对于SQL Server 2016,TempDb里的显著提升. TempDb定制 在SQL Server 2016安装期间,第一个你会碰到的改变是在安装过程中,现在你能配置TempDb的物理配置.我们可以详细看下面的截屏. 微软现在检测几个可用的CPU内核,基于这个数字安装程序自动配置TempDb文件个数.这个对克服…
作为一个DBA,排除SQL Server问题是我们的职责之一,每个月都有很多人给我们带来各种不能解释却要解决的性能问题. 我就多次听到,以前的SQL Server的性能问题都还好且在正常范围内,但现在一切已经改变,SQL Server开始糟糕, 疯狂的事情不能解释.在这个情况下我介入,分析下整个SQL Server的安装,最后用一些神奇的调查方法找出性能问题的根源. 但很多时候问题的根源是一样的:所谓的计划回归(Plan Regression),即特定查询的执行计划已经改变.昨天SQL Serv…
在这篇文章里我想小结下SQL Server 2014引入各种惊艳性能提升!! 缓存池扩展(Buffer Pool Extensions) 缓存池扩展的想法非常简单:把页文件存储在非常快的存储上,例如SSD硬盘,用来扩展缓存池.缓存池扩展来得非常方便,如果你不能给你的数据库服务器物理上增加更多的内存,可以考虑使用缓存池扩展. 资源调控器(Resource Governor) 资源调控器首次是在SQL Server 2008里引入的,但那个时候还不是个成熟的技术,因为你不能在存储级别调控I/O操作,…
SQL Server 2016已经发布了有半年多,相信还有很多小伙伴还没有开始使用,今天我们来谈谈SQL Server 2016 查询存储性能优化,希望大家能够喜欢 作为一个DBA,排除SQL Server问题是我们的职责之一,每个月都有很多人给我们带来各种不能解释却要解决的性能问题. 我就多次听到,以前的SQL Server的性能问题都还好且在正常范围内,但现在一切已经改变,SQL Server开始糟糕, 疯狂的事情不能解释.在这个情况下我介入,分析下整个SQL Server的安装,最后用一些…
SQL Server 2016中In-Memory OLTP继CTP3之后的新改进 转译自:https://blogs.msdn.microsoft.com/sqlserverstorageengine/2016/03/25/whats-new-for-in-memory-oltp-in-sql-server-2016-since-ctp3/ SQL Server 2016正在对 In-Memory OLTP 功能作一系列的强化,从而使该功能使用起来更加方便,性能更优.在之前的文章中,我已经对S…
SQL Server 2016 CTP2.3 的关键特性 数据库方面的增强 Row Level Security已经支持In-memory OLTP 表.用户现在可以对内存优化表实施row-level security策略. 另外SCHEMABINDING.predicate 函数和内联表值函数都要包含NATIVE_COMPILATION编译选项. 使用NATIVE_COMPILATION编译选项的UDFs用户定义函数可以在本地模块和交换查询中使用,就像内存优化表和磁盘表. 没有使用NATIVE…
SQL Server 2016 CTP2.2 的关键特性 正如微软CEO 说的,SQL Server2016 是一个Breakthrough Flagship  Database(突破性的旗舰级数据库) SQL Server2016 CTP2.2是微软数据平台历史上迈出最大的一步,更快的事务处理和查询.任何设备更深入的洞察力.更先进的分析能力.全新安全技术和全新的混合云场景. SQL Server 2016带来全新突破性的  in-memory性能和分析功能来实现关键任务处理.全面的安全特性 -…
一些特別注重資訊安全.個人資料的公司或產業 (如: 金融.保險業),通常「測試用資料庫」的資料,會加上「遮蔽:去識別化」的功能,避免個資外洩.以往必須自己撰寫 SQL 語句或 Stored Procedure 來處理,且遇到不同的資料庫使用者,要給予不同瀏覽權限時,寫起來就更麻煩.現在 SQL Server 2016 已內建「動態資料遮罩 (Dynamic Data Masking)」功能,除了資料可針對自訂邏輯來遮蔽,還可針對不同的資料庫使用者,給予不同的瀏覽權限. --建立測試資料表 CRE…
SQL Server 2016 CPT3中包含了一个新特性叫Row Level Security(RLS),允许数据库管理员根据业务需要依据客户端执行脚本的一些特性控制客户端能够访问的数据行,比如,我们希望业务部的经理只能查看他所在部门的员工的薪资情况.以往像要实现这样的功能,都是要通过视图里层的逻辑编写来实现.以前某个项目就是这么实现的.或者通过在应用程序层去实现,比如在提交命令到数据库前,通过在查询语句中添加WHERE字句条件来实现数据过滤.这样显然RLS是更加简便的去实现行级别权限控制.…