摘要: 介绍 更改跟踪是一种轻量型解决方案,它为应用程序提供了一种有效的更改跟踪机制。常规的,自定义变更跟踪和读取跟踪数据,会使用触发器,存储过程和记录变更的用户表等, 还需要保证访问一致和相关清理工作。 使用CT会减少额外工作量和保证访问一致性。 启用CT的表上必须得有主键,所有版本适用。为了保证... 阅读全文
posted @ 2015-03-04 11:02 Joe.TJ 阅读(3672) 评论(0) 推荐(1) 编辑
摘要: 背景 MapReduce是个非常灵活和强大的数据聚合工具。它的好处是可以把一个聚合任务分解为多个小的任务,分配到多服务器上并行处理。 MongoDB也提供了MapReduce,当然查询语肯定是JavaScript。MongoDB中的MapReduce主要有以下几阶段: 1. Map:把一个操作M... 阅读全文
posted @ 2015-01-31 23:19 Joe.TJ 阅读(12946) 评论(1) 推荐(4) 编辑
摘要: 此文描述查询内存授予(query memory grant)在SQL Server上是如何工作的,适用于SQL 2005 到2008。 查询内存授予(下文缩写为QMG)是用于存储当数据进行排序和连接时的临时中间数据行。查询在实际执行前需要先请求保留内存,所以会存在一个授予的动作。 这样的好处是提高查 阅读全文
posted @ 2014-11-17 21:49 Joe.TJ 阅读(1571) 评论(3) 推荐(1) 编辑
摘要: 从一个存在的库,抽取其表结构,对象,权限等,再部署成一个不包含数据的”空库“的方法有很多种。如自带的Generate Scripts功能,自定义脚本提取创建脚本等。 在实际使用中,我更喜欢使用DAC的方式。特别是它能跟PowerShell结合使用。 什么是DAC,它能干什么? 数据层应用程序 (D... 阅读全文
posted @ 2014-09-25 16:28 Joe.TJ 阅读(1834) 评论(4) 推荐(1) 编辑
摘要: 1. 表A有5行数据,表B有7行数据,问Inner Join最多返回几行数据,Left Join最多返回几行数据,分别在什么情况下? Inner Join 是返回关联表的Cartesian product,然后根据On条件剔除掉不符合的行。这样的话,返回最多行的情况就是保留整个Cartesian p 阅读全文
posted @ 2014-07-23 16:50 Joe.TJ 阅读(2661) 评论(9) 推荐(0) 编辑
摘要: 背景 事务复制中发布表有分区表,如何配置发布项,使分区结构传播到订阅库?有何限制? 测试环境 CodeUSE [master]GOCREATE DATABASE [OMS_Test] ON PRIMARY ( NAME = N'OMS_Test_data1', FILENAME = N'C:\P... 阅读全文
posted @ 2014-07-16 16:07 Joe.TJ 阅读(1591) 评论(3) 推荐(1) 编辑
摘要: 问题 对某个库新增了一个订阅节点,然后需要把一些应用切到新订阅库,以分散负载。当应用切换后,有一个应用每次启动不到30秒,总是报超时的错误,而error log中又没有任何记录: Timeout expired. The timeout period elapsed prior to complet... 阅读全文
posted @ 2014-06-25 22:34 Joe.TJ 阅读(7900) 评论(6) 推荐(0) 编辑
摘要: SQL Server创建索引时,可以指定Unique使之成为唯一索引。“唯一”顾名思义,但是两都到底有什么区别呢?因为索引也是一种物理结构,所以还是要从存储和结构上分析。 索引结构分叶级和非叶级,分析时我们要分开来看,这个很重要。 文中涉及的索引行大小计算,参考MSDN估计数据库大小索引部分。 1. 非唯一聚集索引和唯一聚集索引 创建两个测试表,各10000条整数,tb1唯一,tb2非唯一,有1000条为9999的重复值。 Codecreate table tb1(col1 int);declare @i int=1while @i90000go由前文的分析可知上图所有索引的minSize和. 阅读全文
posted @ 2014-02-28 15:11 Joe.TJ 阅读(22634) 评论(5) 推荐(6) 编辑
摘要: 自调整的数据库引擎(Self-tuning Database Engine) 长期以来,微软都致力于自调整(Self-Tuning)的SQL Server数据库引擎,用以降低产品的总拥有成本。从SQL Server 2005开始,SQL Server就是动态管理内存使用,并且调整内存使用时,不需要重启数据库引擎。 所以它也不提供内存分配的微调项。各个组件的内存分配,完全由数据库引擎自动管理,不能手动分配。但是这货还是提供了一些配置项,能够影响数据库引擎如何使用内存。 是否使用这些配置项来替代默认值,取决于操作系统版本,SQL Server版本,可用物理内存和处理器架构等。 SQL Serve. 阅读全文
posted @ 2014-02-20 17:28 Joe.TJ 阅读(1794) 评论(3) 推荐(2) 编辑
摘要: 转载自:http://technet.microsoft.com/en-us/magazine/gg299551.aspx Many companies have downsized their IT departments over the last few years. Many database administrators (DBAs) have ended up with respons... 阅读全文
posted @ 2014-01-10 10:28 Joe.TJ 阅读(347) 评论(0) 推荐(0) 编辑