摘要:
这次介绍一下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 阅读全文
摘要:
今天早操作WinForm时遇到了一个问题,在此和大家分享一下。场景:在一个WinForm:A中通过按钮打开另外一个WinForm:B,A通过判断B中点击“OK”按钮或者“Cancel”按钮,进行相应的操作。问题:每次在B中需要点击两次“OK”或者“Cancel”按钮,A才能接受到按钮的返回值。代码:Form A: public partial class A : Form { public A () { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { B b = new B(); 阅读全文
摘要:
列出Database或Table的所有约束很多时候我们想使用像 INSERT、UPDATE、DELETE 这样的DML命令。有时候因为某个表被设置约束,导致我们操作该表出现错。拿到一个新的数据库,如果不知道哪些表被设置约束,一定让人很痛苦。如果我们能够列出所有的约束,很多错误就可以避免。下面有两个方法列出约束。方法一使用sys.objects 获得约束信息。— 显示数据库中所有约束SELECT * FROM sys.objectsWHERE type_desc LIKE ‘%CONSTRAINT’上面的语句显示sys.objects中所有的字段。我们可以改进上面的查询,显示比较舒服的结果。– 阅读全文
摘要:
Server Error in '/' Application.Configuration ErrorDescription: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately. Parser Error Message: Unrecognize 阅读全文