上一页 1 2 3 4 5 6 7 8 ··· 27 下一页
摘要: 最近有一个朋友问我一个关于给查询操作强制上X锁却不阻塞的问题。该查询写在一个存储过程中,代码如代码1所示: 1: create PROC [dbo].[GetCityOrders] 2: @city NVARCHAR(10) , 3: ... 阅读全文
posted @ 2015-01-15 16:08 CareySon 阅读(2432) 评论(21) 推荐(7) 编辑
摘要: 在之前客户咨询案例中,很多客户应用程序连接SQL Server直接用的就是SA帐号。如果对数据库管理稍微严格一点的话,就不应该给应用程序这种权限,通常应用程序只需要进行增删改查,而很少有DDL操作,因此配置帐号时应该遵循“最小权限分配”的原则仅仅赋予所需的权限。 对于应用程序来说,最小的权限通常就是就是给予读权限,写权限和执行存储过程权限。由于为了防止SQL注入导致的数据库信息泄... 阅读全文
posted @ 2015-01-09 10:22 CareySon 阅读(2470) 评论(0) 推荐(2) 编辑
摘要: 最近工作中有一个需求,就是某一个比较重要的业务表经常被莫名其妙的变更。在SQL Server中这类工作如果不事前捕获记录的话,无法做到。对于捕获变更来说,可以考虑的选择包括Trace,CDC。但Trace的成本比较大,对于负载量较高的系统并不合适,而CDC需要影响业务库,因此SQL Server Audit就是一个比较好的选择。  在SQL Server中,如果只是希望获得表的... 阅读全文
posted @ 2015-01-05 17:00 CareySon 阅读(4803) 评论(8) 推荐(4) 编辑
摘要: 简介 在SQL Server中,Execute As关键字允许当前账户在特定上下文中以另一个用户或登录名的身份执行SQL语句,比如用户张三有权限访问订单表,用户李四并没有权限访问订单表,那么给予用户李四访问订单的表的权限就有些过头了,因为李四可能只有在很特定的上下文环境中才需要访问订单表,... 阅读全文
posted @ 2014-12-05 16:35 CareySon 阅读(2417) 评论(5) 推荐(5) 编辑
摘要: 最近一个朋友和我探讨关于Where 1=1 and这种形式的语句会不会影响性能。最后结论是不影响。 虽然结论正确,但对问题的认识却远远没有解决问题的根本。实际上在T-SQL语句的书写过程中经常犯得错误就是得出一个很窄的结论,然后教条式的奉若圣经,对于T-SQL领域来说,在网上经常可以看到所谓的优化守则,随便在网上搜了一些摘录如下: 不要有超过5个以上的表连接(JOIN) ... 阅读全文
posted @ 2014-12-02 21:38 CareySon 阅读(15068) 评论(13) 推荐(10) 编辑
摘要: 在某些情况下,表中数据较多,且分布不均匀的时候,执行计划的估计行数往往会有很大偏差,因此SQL Server 2008引入了过滤统计信息,意味着只对表中的特定数据计算统计信息。那么在调优查询的过程中如何知道语句是否使用了过滤统计信息呢?SQL Server提供了一个隐藏的跟踪标记来支持这一过程。下面Demo可以展示如何使用该跟踪标记。 我们首先对AdventureWorks... 阅读全文
posted @ 2014-10-30 11:47 CareySon 阅读(2349) 评论(9) 推荐(9) 编辑
摘要: 有时候希望获取当前机器上安装的SQL Server序列号,但注册表中序列号是经过加密的,因此我写了一个小工具获取当前SQL Server的序列号。程序比较粗糙,没有做错误验证。 下载地址:http://files.cnblogs.com/CareySon/SQLServerProductCode.rar 阅读全文
posted @ 2014-10-13 11:57 CareySon 阅读(5232) 评论(12) 推荐(3) 编辑
摘要: 简介 OLTP系统的后端关系数据库用于存储不同种类的数据,理论上来讲,数据库中每一列的值都有其所代表的特定含义,数据也应该在存入数据库之前进行规范化处理,比如说“age”列,用于存储人的年龄,设置的数据类型为INT类型。存入数据库的值是2000虽然看起来没有任何问题,但结合业务规则,这样的”Noisy”数据在数据分析过程中就会造成数据分析的结果严重失真,比如极大的拉高平均年龄。在真实的O... 阅读全文
posted @ 2014-10-08 09:09 CareySon 阅读(9981) 评论(15) 推荐(17) 编辑
摘要: 很多时候,在我们规划SQL Server数据库的空间,或向存储方面要空间时,都需要估算所需申请数据库空间的大小,估计未来最简单的办法就是看过去的趋势,这通常也是最合理的方式。 通常来讲,一个运维良好的数据库都需要做定期基线(baseline),有了基线才会知道什么是正常。一个简单的例子例如,一些人的血压平常偏低,那么80的低压对他来说就是不正常了。但现实情况是大多数系统并没有采集... 阅读全文
posted @ 2014-09-23 11:40 CareySon 阅读(5694) 评论(3) 推荐(4) 编辑
摘要: 最近帮助客户调优的过程中,发现客户的TempDB存在非常大的压力,经过排查是发现某些语句对TempDB的巨量使用所导致。 在SQL Server中,TempDB主要负责供下述三类情况使用: 内部使用(排序、hash join、work table等) 外部使用(临时表,表变量等) 行版本控制(乐观并发控制) 而对于内部使用,一些比较复杂的查询... 阅读全文
posted @ 2014-08-13 15:46 CareySon 阅读(4855) 评论(16) 推荐(5) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 27 下一页
点击右上角即可分享
微信分享提示