06 2013 档案
摘要:阅读导航委托Delegate泛型1. 委托Delegate 继承自MulticastDelegate 声明委托定义签名:public delegate intDemoDelegate(int num1, int num2); 使用相同签名的方法实例化委托:int Sum(int input1, int input2){ return input1 + input1; }DemoDelegate demo1 = Sum; 使用匿名方法实例化委托:DemoDelegate demo2 = delegate(int input1, int input2){ return input1 * in...
阅读全文
摘要:阅读导航一、概要二、JOIN分类三、JOIN分类详解一、概要JOIN对于接触过数据库的人,这个词都不陌生,而且很多人很清楚各种JOIN,还有很多人对这个理解也不是很透彻,这次就说说JOIN操作。图片是很容易被接受和理解,所以尝试使用图片来说明一下。二、JOIN分类客官:小二,上JOIN分类!……小二:客官,新鲜出炉的JOIN分类图片来喽。三、JOIN分类详解客官:小二,速速详细道来!小二:现在让小二来给您详细介绍。INNER JOIN:仅仅返回两个表中,匹配列相同的列值,所在行的数据。SELECT * FROM Table1 t1 INNER JOIN Table2 t2 ON t1.Col1
阅读全文
摘要:阅读导航1. TVF(表-值行数Table-Valued Functions) a. 创建TVF b. 使用TVF的低性能T-SQL c. 使用临时表代替TVF2. 标量函数3. 替代标量函数 1). 临时表 2). 持久化确定的计算列 3). 使用计划更新工作 a. 创建标量函数 b. 使用临时表替换标量函数 c. 使用持久化确定的计算列 d. 使用计划工作代替标量函数上一篇介绍了关于“临时表、表变量和Union优化”这次转向关注定义函数——也就是表-值函数、标量函数。UDF(用户定义函数,User defined Function)对于集中精力处理业务逻辑很方便,因为可以在UDF中指定一组
阅读全文
摘要:这次看一下临时表,表变量和Union命令方面是否可以被优化呢?阅读导航一、临时表和表变量二、本次的另一个重头戏UNION 命令一、临时表和表变量很多数据库开发者使用临时表和表变量将代码分解成小块代码来简化复杂的逻辑。但是使用这个的后果就是可能带来性能的损害1. 对I/O子系统的影响 (存储区域网络SAN 或逻辑存储),这是由于增加了页和页I/O闩锁等待,这样等待被认为是最差的等待,这也可能会增加临时数据库的密集竞争进而导致高分配请求,最后可能出现全局分配映射页(GAM)、共享全局映射页(SGAM)或可用空间(PFS)瘫痪。全局分配映射页(Global Allocation Map, GAM)用
阅读全文
摘要:这次介绍一下T-SQL中“Not IN” 和“Not Exists”的优化。Not IN 和 Not Exists 命令 :有些情况下,需要select/update/delete 操作孤立数据。孤立数据:不存在主表中而存在其关联表中。操作这样的数据,一般第一反应是利用“Not in” 或 “Not Exists”命令。使用Not IN会严重影响性能,因为这个命令会逐一检查每个记录,就会造成资源紧张,尤其是当对大数据进行更新和删除操作时,可能导致资源被这些操作锁住。选择NOT IN 还是 NOT Exists现在SQL Server 中有两个命令可以使用大数据的插入、更新、删除操作,性能方面比
阅读全文
摘要:阅读导航1.概述2. 什么是重复索引3. 查找重复索引 4. 删除重复索引5. 总结1. 概述很多人都知道索引在数据库上的是有利有弊的。像其他主流商业数据库一样SQL Server允许在一个列上重复创建索引。因为SQL Server没有限制创建重复索引的数量,只是限制数据库的一个表上最多可以创建999重复索引,所以这就增加了数据库中存在重复索引的可能性。表的列上存在重复索引的话,可能会明显的损害数据库性能,因为SQL Server必须分别维护每一个重复索引。此外,SQL Server优化查询语句时,查询优化器也会考虑这个问题,这就导致一系列性能问题。要理解什么事实重复索引、怎么样找到它们、怎么
阅读全文
摘要:阅读导航1. 概述2.规范逻辑数据库设计3. 使用高效索引设计4. 使用高效的查询设计5. 使用技术分析低性能6. 总结1. 概述在比较大的范围内找出能够大幅提高性能的区域,并且专注于分析这个区域,这是最有效的优化SQL Server性能的方式。否则,大量的时间和精力可能被浪费在不能提高很大性能的区域。在这里并没有讨论关于多用户并发所带来的性能问题。能获得最大性能提高的区域一般是:逻辑数据库设计,索引设计,查询设计。然而,最大的性能问题经常由于缺乏这些方面研究的原因造成。如果性能是被列为一个需要关注的问题,聪明的做法是首先专注于这些方面, 因为性能的大幅提高经常是用相对较小的时间精力完成。下面
阅读全文
摘要:这一次介绍一下Cmdlet处理过程的生命周期总共分为六个部分1.概述2. 命令行输入绑定参数(parameters)3. 开始指令处理4. 接受管道输入绑定参数5. 处理记录6. 处理记录1. 概述下图展示Windows PowerShell怎样处理一个管道请求指令。这个流程包括:指令参数(parameters)初始绑定阶段指令处理开始管道参数(parameters)二次绑定阶段记录处理指令处理结束2. 命令行输入绑定参数(parameters) 第一次绑定期间,Windows PowerShell运行时使用它的管道处理器绑定参数(Arguments)到参数(parameters)。参数(a.
阅读全文
摘要:之前写了一个C# 调用PowerShell方法, 那么怎么反过来操作呢,也就是怎么样用C#写一个powershell命令呢?现在就用C#写一个超级简单的Module和Cmdlet1. 在VS中创建一个Library的项目文件->新建->项目->C#->Class Library在这里给我们的Class Library起一个名字”FirstPS”2. 添加必要的引用“System.Management”和“System.Management.Automation”2.1 添加System.Management在新建的项目下面找到引用->添加引用在.net选项卡下找到
阅读全文
摘要:PowerShell应为编写和运行都很方便,所以为了重复利用,经常写了一些小方法或者PS代码片段。使用的时候可能会很难找到自己想要的那个方法,如果要是有一个界面把这些代码管理起来并且调用,那就很爽了1.创建一个powershell的方法,供C#调用,方法很简单,两个数的加法运算1 function Sum2 {3 param([int]$first, [int]$second)4 $result = $first + $second5 return $result6 }2. 在C#的控制台程序中创建一个私有方法,调用powershell首先定义一个powershell存放路径的全局变量 1 p
阅读全文