浅谈.net中的静态类和java中的内部静态类



昨日看《Effective Java》第二条:遇到多个构造器参数时要考虑用构造器。其中,演示通过Builder模式,构建复杂的对象。因为之前对java不是很了解的原因。很疑惑:static class居然可以构建实例?之前,在.net中的静态类一直都是不能实例化的。

Read More

浅谈.net和Java的异常类型设计



最近在自学Java,看到Java的检查型异常设计时,心中不免有些疑惑。疑惑使用检查型异常的必要性。注:本人现在从事的.net开发。C#在设计上借鉴了Java,但是,C# 并没有引入所谓的检查型异常。

Read More

CSS入门经典-知识点摘录



Width属性的“收缩”和“扩展”适应

所有带width属性的元素都有一个默认的auto值,但在使用auto宽度时并不是所有元素都具有相同的效果。例如,<table>元素只是水平扩展以容纳其中的数据,这种方法称为“收缩适应”。另一方面,<div>元素则尽可能水平扩展其宽度,这种方法称为“扩展适应”。

Read More

EXISTS与IN的比较



Exists

根据子查询是否返回行,该谓词返回truefalse,不同于其他谓词和逻辑表达式,无论输入子查询是否返回行,Exists都不会返回unknown。如果子查询的筛选器为某一行返回unknown,则该行不返回。在筛选器中,unknown被认为类似于false,换句话说,当输入子查询包含一个筛选器时,只要该筛选器至少为一行得到true,则Exists将返回true

 

Exists谓词的子查询中,Exists只关心行是否存在,不关心特定属性,优化器将忽略子查询中的select列表。

 

在SQL SERVER 2000之前的版本,两者其实是有区别的,优化器会为他们生成不同的执行计划,而且EXISTS的性能更好,因为它具有短路功能.在SQL SERVER 2000及之后的版本,优化器通常会为两逻辑等价的查询生成相同的计划.

Read More

Math.Round()——面试题小结



今天面试,碰到一道题,关于Math.Round();也许做应用做久了,脑子不怎么转了,呵呵。

之前竟然没用过这个方法,可能看到过,忘了。。。。。一时想不起来,只猜是四舍五入的,后来还是做错了。

Read More

SQLServer如何处理到达数据库引擎的查询





当一个查询到达数据库引擎时,SQL SERVER执行两个主要的步骤来产生期望的查询结果。第一步是查询编译,它生成查询计划,第二步执行这个查询计划。

 

SQL SERVER 2005中的查询编译由三个步骤组成:分析、代数化查询优化。完成这些步骤后,编译器把经过优化的查询计划保存到过程缓存中。在这里,执行引擎把该计划转换为可执行的形式,然后执行其中的步骤以生成查询结果。如果今后再次执行相同的查询或存储过程时,过程缓存已经包含了该计划,则跳过编译步骤,直接重用缓存的计划来执行该查询或存储过程。

 

关于SQL Server**的优化

SQL SERVER并不优化批处理中的每条语句。只优化那些访问表而且可能生成多个执行计划的语句。SQL SERVER优化所有DML(数据操作语言)语句,即SELECT DELECTUPDATE语句。除了DML,其他一些T-SQL语句也会被优化,CREATE INDEX便是其中之一,只有被优化过的语句才会生成查询计划。

 

关于SQL**中的分组

GROUP BYHAVING之类显式子句并不是使SELECT列表被分组的唯一因素。根据SQL的规定,只要出现绑定到特定列表的聚合函数,即使没有GROUP BYHAVING子句,也会使SELECT列表分组。下面是一个简单的示例:

SELECT c1,MAX(c2) FROM dbo.T1;

这是一个分组SELECT因为查询中包含了一个MAX聚合。又因为它是一个分组SELECT,在其中使用非聚集的列c1是不合法的,所以该查询不正确。



版权声明:本文为博主原创文章,未经博主允许不得转载。