深入理解原理,一切表面问题都是浮云[转]

 

这是一个在任何领域都适用的规律。对于计算机这个相对更加面向思维的领域尤为如此。

就以SQL Server为例:

理解了SQL的理论基础——关系代数和关系理论 , 那么所有的查询语句将会像数学中的加减乘除一样简单明了。不会再觉得SQL的语法如何诡异(因为它与通常的编程语言有明显差别),不会再觉得子查询、 DISTINCT、JOIN、GROUP BY如何绕人,也不会再干那种把SQL当一种编程语言把表当一种数据结构的吃力不讨好的事。

理解了SQL Server的数据类型 ,当你写下一个表达式时,你就能够知道SQLServer是怎么理解和处理这个表达式,而不会出现莫名的误会。同时,你也更能够随心所欲地将一个值转换为另一个你想要的结果。

理解了SQL Server的字符编码和排序规则 ,varchar和nvarchar将能够更好地各司其职,你的字典里也将不再有“乱码”一词,只有字节、字符和编码规则的泾渭分明。(参看SQLServer中文处理

理解了SQL特有的三值逻辑(Three-valued Logic, 3VL) ,NULL与NOT NULL将没有分别,不一不异。

理解了表和索引的存储机制 ,当你看到一个表,你可以透过SSMS的数据结果看到每一条记录每一个字段在磁盘里的排布,你可以知道一个CREATE INDEX将会增加多少的磁盘占用量,你也很容易明白怎么样的查询才能高效地使用索引,以及为何有时候查找索引还不如表扫描来得快。

理解了SQL Server的系统架构 ,当你按下F5执行一个语句时,你可以看到数据是如何在磁盘、内存、tempdb之间流转,也更容易明白为什么一个查询会慢,慢在哪里;你也能够事先料想到什么时候一个操作会让日志文件飞速膨胀,吃完你的磁盘空间。

理解了会话、事务和隔离级别 ,那么一个查询何时会等待、何时能读取、何时能修改,将一目了然。这是维护数据一致性和增强访问并发性的必备知识。

理解了SQL Server支持的动态语句 ,你可以更好地发挥它天使般的神奇功力,同时避免被它魔鬼的一面所伤及。

至于SQL Server的系统函数、系统过程、系统视图和命令 ,以及SSMS、sqlcmd、bcp、SSIS 几种常用的工具,都是Hack SQL Server的必备技巧。翻翻联机丛书,了解了才能应用自如。

抓住本质,深入理解原理,一切表面问题都是浮云。

一点感慨。

 

原文地址:http://topic.csdn.net/u/20100720/17/5F135532-FD54-4922-A35B-61AD60E15537.html

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值