摘要: 对于聚合,SQL Server支持两种物理操作符:流聚合与哈希聚合。标量聚合标量聚合通过在选择列表中没有GROUP BY语句的聚合函数查询。标量聚合总是返回一个单一的行。SQL Server总是使用流聚合操作符实现标量聚合。下面是个简单的例子:[代码]这个查询产生下面的计划:流聚合操作符就是计算输入行的大小并返回结果。流聚合实际计算Bigint的总数([Expro1004])。计算的数量需要把这个... 阅读全文
posted @ 2010-09-02 15:26 冯翔 阅读(1025) 评论(0) 推荐(1) 编辑
摘要: 连接SQL Server支持三种物理连接运算符:嵌套循环连接、合并连接及哈希连接。在bookmark lookup示例中,已经接触了嵌套循环连接。没有最好的连接运算符,而且没有连接运算符好或不好。每一个连接运算符在正确的环境都会执行的很好,在错误的环境都会执行的不好。嵌套循环连接 嵌套循环连接是最简单和最基础的连接方式。它对一个表(外表)的每行和另外一个表(称为内行)的每行比较,寻找满足谓词连接的... 阅读全文
posted @ 2010-08-29 17:25 冯翔 阅读(2276) 评论(0) 推荐(0) 编辑
摘要: 根据上篇知道非聚集索引不能覆盖表中所有的列。假设在非聚集索引关键字中有一个带有谓词的查询用来选择没有被索引覆盖的列。如果SQL Server在非聚集索引中进行查找,会丢掉一些必须的列。反之,如果在聚集索引中进行查找,会丢掉一些必须的列。反之,如果在聚集索引中进行扫描,则会获取所有的列。反之,如果在聚集索引中进行扫描,则会获取所有的列。但这要涉及表中的每一行,从而影响效率。例如下面这个查询。[代码]... 阅读全文
posted @ 2010-08-27 15:35 冯翔 阅读(1138) 评论(0) 推荐(0) 编辑
摘要: 闲话少说,切入正题,扫描和查找时从表和索引中读取数据的迭代器,作为SQL Sever中所支持的最基本的迭代器,几乎会在每一个查询计划中出现。一定要区分扫描和查找之间的不同,扫描是用来处理整个表和索引的全部分支;查找时在谓词的基础上有效的返回索引中的一个或多个范围中的行。首先是关于扫描的示例,如下所示:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->select[orderId]from[Orders]Owhere[RequiredDate]= 阅读全文
posted @ 2010-08-21 23:37 冯翔 阅读(1088) 评论(0) 推荐(0) 编辑
摘要: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->IFEXISTS(SELECT1FROMsysobjectsA,syscolumnsBWHEREA.id=B.idANDA.[name]='sys_Module'ANDB.[name]='M_ShowType')ALTERTABLEsys_ModuleDROPCOLUMNM_ShowTypealtertablesys_ModuleaddM_ShowTypeint 阅读全文
posted @ 2010-04-01 20:45 冯翔 阅读(2668) 评论(0) 推荐(0) 编辑
摘要: 给TextBox控件加上KeyPress事件,事件代码如下: private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { if ((int)e.KeyChar >= 65296 && (int)e.KeyChar <= 65305) { e.KeyChar = (char)((int)e.KeyChar - 65248); } } 阅读全文
posted @ 2010-01-09 16:40 冯翔 阅读(582) 评论(0) 推荐(0) 编辑
摘要: CodeCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->1privatevoidFrmMain_FormClosing(objectsender,FormClosingEventArgse)2{3{4if(MessageBox.Show("您确定要退出系统吗?"5,"询问"6,MessageBoxButtons.YesNo7,MessageBoxIcon.Question8,MessageBoxDefa 阅读全文
posted @ 2009-10-11 15:48 冯翔 阅读(571) 评论(0) 推荐(0) 编辑
摘要: (转至CSDN-爱新觉罗.毓华)坚持SQL Server的学习, 列转行这个也是比较常见SQL操作本人愚见, 总结出来具有以下条件的情况下可能会出现此需求: 一个表中某一个列值依赖于该表中两个或多个列(如下表中的成绩依赖于学生和课程), 好像这种情况违反了数据库设计的第一范式(1NF), 哈哈!今天CSDN上无意看到一个比较全面的列转行, 但是以前没怎么接触心里就有种恐惧,现在系统的学习下,避免以... 阅读全文
posted @ 2009-08-15 18:00 冯翔 阅读(547) 评论(0) 推荐(0) 编辑
摘要: 这里主要演示3个运算词,UNION, EXCEPT 和 INTERSECT这三个放在一起是有理由的,因为他们都是操作两个或多个结果集,并且这些结果集有如下限制:所有查询中的列数和列的顺序必须相同.数据类型必须兼容. 并且它们都是处理于多个结果集中有重复数据的问题首先还是创建测试环境[代码]两个表的初始结果如下非常简单的两个表,列数和列顺序一样. 而数据中有一条数据相同,这里的相同时完全相同,包括主... 阅读全文
posted @ 2009-08-08 23:32 冯翔 阅读(1279) 评论(2) 推荐(0) 编辑
摘要: 几个月前面试第一次遇到这种题目大意是每行记录的某一列和下一行记录的某列之和,做为一个新列保存到结果集中,以此类推现在想想,竟然是如此的简单,并且实现方式不仅一种![代码]先看看结果如下新结果集的第三列是id小于当前行id的所有price之和,这好像跟普通的查询没有什么区别,只是子查询中查询的对象是本身,让人有点不太习惯,就好像递归一样,自己调用自己,如果下次面试遇到这种题目,一定会正确的完成,哈哈... 阅读全文
posted @ 2009-08-08 15:56 冯翔 阅读(719) 评论(0) 推荐(1) 编辑