2012年1月10日

SQL 优化

摘要: 避免出现SELECT * FROM table 语句,要明确查出的字段。尽可能多的使用索引,建立复合索引。建立复合索引时列的顺序是F1,F2,F3,则在where或order by子句中这些字段出现的顺序要与建立索引时的字段顺序一致,且必须包含第一列。只能是F1或F1,F2或F1,F2,F3。否则不会用到该索引。使用内层限定原则,在拼写SQL语句时,将查询条件分解、分类,并尽量在SQL语句的最里层进行限定,以减少数据的处理量。应绝对避免在order by子句中使用表达式。如果需要从关联表读数据,关联的表一般不要超过7个。如果在语句中有not in(in)操作,应考虑用not exists(ex 阅读全文

posted @ 2012-01-10 10:23 Jimmy.x.zhou 阅读(264) 评论(0) 推荐(0) 编辑

2011年10月9日

建模的误区

摘要: 走出一般性的设计误区,迈向成功之途 无论你遵从的是重量级的方法,比如Enterprise Unified Process(EUP),还是轻量级的开发过程,如Extreme Programming(XP),建模在软件开发中都是不可或缺的。但不幸的是其中充斥着各种谬误与迷思。这来自于各个方面,有从理论家错误的研究、数十年来信息技术领域内的文化沉积、软件工具开发商天花乱坠半的市场宣传以及象Object Management Group (OMG)和IEEE这类组织的标准。这个月,我要揭示建模中的误区,指出其相应的事实真相。误区一 建模就等于是写文档 这很可能是其中最具破坏力的一条,因为开发人... 阅读全文

posted @ 2011-10-09 23:31 Jimmy.x.zhou 阅读(165) 评论(0) 推荐(0) 编辑

2011年9月27日

浅谈JavaScript编程语言的编码规范

摘要: 注:本文转载自 developerworks 作者:王丹丹,高级软件工程师,IBM 简介: JavaScript 编程语言作为最流行的客户端脚本语言,早已被众多 Web 开发人员所熟悉。随着 Web2.0 时代的到来和 Ajax 技术的广泛应用,JavaScript 也逐渐吸引着更多的视线。工作中要求越多的是对 JavaScript 语言的深入学习,灵活运用,和对编码质量的保证。 对于熟悉 C/C++ 或 Java 语言的工程师来说,JavaScript 显得灵活,简单易懂,对代码的格式的要求也相对松散。很容易学习,并运用到自己的代码中。也正因为这样,JavaScript 的编码规范... 阅读全文

posted @ 2011-09-27 10:09 Jimmy.x.zhou 阅读(260) 评论(0) 推荐(0) 编辑

2011年9月26日

c#缓存介绍(转)

摘要: c#缓存介绍(转)本章导读缓存主要是为了提高数据的读取速度。因为服务器和应用客户端之间存在着流量的瓶颈,所以读取大容量数据时,使用缓存来直接为客户端服务,可以减少客户端与服务器端的数据交互,从而大大提高程序的性能。本章从缓存所在的命名空间“System.Web.Caching”开始,详细介绍框架提供的缓存类和操作方法,主要涉及简单数据的缓存、数据缓存依赖和数据库缓存依赖三个技术要点,最后演示一个完全使用缓存实现数据读取的实例。讲解流程如图16-1所示。图16-1 缓存命名空间的讲解流程16.1 System.Web.Caching简介本节从缓存命名空间的总体简介和组成结构入手,从整体上对Sys 阅读全文

posted @ 2011-09-26 23:31 Jimmy.x.zhou 阅读(11330) 评论(0) 推荐(0) 编辑

2011年9月23日

概念收集

摘要: 1.String.Empty、null和""的区别null是C#关键字,是表示不引用任何对象的空引用的文字值。null 是引用类型变量的默认值。那么也只有引用型的变量可以为NULL,如果 int i=null,的话,是不可以的,因为Int是值类型的。string.Empty就相当于"",但他俩和NULL是两码事。string.Empty不分配存储空间""分配一个长度为空的存储空间,所以string.Empty 比""效率要高点。 阅读全文

posted @ 2011-09-23 13:56 Jimmy.x.zhou 阅读(149) 评论(0) 推荐(0) 编辑

2011年9月21日

CROSS APPLY和 OUTER APPLY 区别详解

摘要: 转自:http://www.cnblogs.com/end/archive/2011/02/17/1957011.htmlSQL Server 2005 新增 cross apply 和 outer apply 联接语句,增加这两个东东有啥作用呢? 我们知道有个 SQL Server 2000 中有个 cross join 是用于交叉联接的。实际上增加 cross apply 和 outer apply 是用于交叉联接表值函数(返回表结果集的函数)的, 更重要的是这个函数的参数是另一个表中的字段。这个解释可能有些含混不请,请看下面的例子: -- 1. cross join 联接两个表selec 阅读全文

posted @ 2011-09-21 18:26 Jimmy.x.zhou 阅读(259) 评论(0) 推荐(0) 编辑

GC 管理详解

摘要: Understanding .net CLR garbage collection引言内存管理是计算机科学中一个相当复杂而有趣的领域。在计算机诞生的这几十年间,内存的管理的技术不断进步,使系统能够更加有效地利用内存这一计算机必不可少的资源。一般而言,内存管理可以分为三类:硬件管理(如TLB),操作系统管理(如Buddy System,Paging,Segmentation),应用程序管理(如C++,Java,.net的内存管理机制)。鉴于篇幅和笔者水平的限制,本文只涉及了内存管理的很小一部分,即.net中的内存管理方法。.net是一个当代的应用程序框架,采用了内存自动管理技术,就是通常所说的内 阅读全文

posted @ 2011-09-21 17:27 Jimmy.x.zhou 阅读(512) 评论(0) 推荐(0) 编辑

2011年9月20日

C#中Invoke的用法(转)

摘要: C#中Invoke的用法(转)转自:http://blog.3snews.net/html/30/34530-27563.html在多线程编程中,我们经常要在工作线程中去更新界面显示,而在多线程中直接调用界面控件的方法是错误的做法,Invoke 和 BeginInvoke 就是为了解决这个问题而出现的,使你在多线程中安全的更新界面显示。正确的做法是将工作线程中涉及更新界面的代码封装为一个方法,通过 Invoke 或者 BeginInvoke 去调用,两者的区别就是一个导致工作线程等待,而另外一个则不会。而所谓的“一面响应操作,一面添加节点”永远只能是相对的,使 UI 线程的负担不至于太大而已, 阅读全文

posted @ 2011-09-20 10:43 Jimmy.x.zhou 阅读(276) 评论(0) 推荐(0) 编辑

2011年9月19日

关于CLR内存管理一些深层次的讨论[下篇]

摘要: 关于CLR内存管理一些深层次的讨论[下篇]《上篇》中我们主要讨论的是程序集(Assembly)和应用程序域(AppDomain)的话题,着重介绍了两个不同的程序集加载方式——独占方式和共享方式(中立域方式);以及基于进程范围内的字符串驻留。这篇将关注点放在托管对象创建时内存的分配和对大对象(LO:Large Object)的回收上,不对之处,还望各位能够及时指出。目录 一、从类型(Type)与实例(Instance)谈起 二、实例内存分配不仅限于GC堆 三、实例对类型的引用 四、LOH中的对象如何被回收一、从类型(Type)与实例(Instance)谈起在面向对象的世界中,类型和实例是两个核心 阅读全文

posted @ 2011-09-19 22:41 Jimmy.x.zhou 阅读(197) 评论(0) 推荐(0) 编辑

关于CLR内存管理一些深层次的讨论[上篇]

摘要: 一、程序集与应用程序域何谓程序集(Assembly)?它是一个托管应用的基本的部署单元。一个程序集是自描述的(通过元数据)、能够实施版本策略和部署策略。我倾向于这样的方式来定义程序集:“Assembly is a reusable, versionable, and self-describing building block of a CLR application.”从结构组成来看,一个程序集主要由三个部署组成:IL指令、元数据和资源。程序集的结构组成如下图所示。那么什么又是应用程序域呢?从功能上讲,通过应用程序域实现的隔离机制为托管代码的执行提供了一个安全的边界。从与程序集的关系来讲,我 阅读全文

posted @ 2011-09-19 09:37 Jimmy.x.zhou 阅读(187) 评论(0) 推荐(0) 编辑

导航