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

feilniu 2010-07-20 05:28:31
加精
这是一个在任何领域都适用的规律。对于计算机这个相对更加面向思维的领域尤为如此。

就以SQL Server为例:

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

理解了SQL Server的数据类型,当你写下一个表达式时,你就能够知道SQLServer是怎么理解和处理这个表达式,而不会出现莫名的误会。同时,你也更能够随心所欲地将一个值转换为另一个你想要的结果。(其中datetime是一个大家经常会困扰的数据类型,参看该帖22楼。)

理解了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的必备技巧。翻翻联机丛书,了解了才能应用自如。

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

一点感慨。


p.s. 类似这种非求助性质的帖子,希望大家各抒己见。结帖时分数会给比较有想法的回复。
...全文
12816 275 打赏 收藏 转发到动态 举报
写回复
用AI写文章
275 条回复
切换为时间正序
请发表友善的回复…
发表回复
brucetong 2013-03-10
  • 打赏
  • 举报
回复
已经认真学习啦!一定好好消化!
caijunbaobao 2013-02-27
  • 打赏
  • 举报
回复
非常有道理的说
k5416005 2012-08-30
  • 打赏
  • 举报
回复
top~~~~~只要内幕,神马都是浮云呀~
liuyuqing0401 2010-10-11
  • 打赏
  • 举报
回复
牛人哈...嘿嘿
ChinaITOldMan 2010-08-28
  • 打赏
  • 举报
回复
挺好的,感觉现在的CSDN比较浮躁,都忙着挣分,抢红花,挣星星,灌水。
chaos0712 2010-08-23
  • 打赏
  • 举报
回复
受教了,偶尔需要反省一下。
feilniu 2010-08-20
  • 打赏
  • 举报
回复
[Quote=引用 265 楼 haiwer 的回复:]

7.20正好是在不上论坛的时间

CSDN还是会时不时冒出人才来的

潜心研究需要,时不时出来娱乐下也是需要的嘛,不知道搂主能不能理解下这句话

CSDN的一半功能是用来娱乐的,包括写写有点意思不一定技术含量很足的SQL,也是一种娱乐
[/Quote]

I agree.
daishaodong 2010-08-19
  • 打赏
  • 举报
回复
先从感性认识入手,逐步深入理性分析,这样能理解得更深刻
sforat 2010-08-19
  • 打赏
  • 举报
回复
为了浮云。
我们顶
fengyun142415 2010-08-19
  • 打赏
  • 举报
回复
楼主有深度!
inetfuture 2010-08-19
  • 打赏
  • 举报
回复
深入理解原理往往事半功倍,基础还是很重要滴……
fhzpgj 2010-08-19
  • 打赏
  • 举报
回复
零基础,碰到问题就学
samyou 2010-08-19
  • 打赏
  • 举报
回复
空即是色,色即是空。
昵称被占用了 2010-08-19
  • 打赏
  • 举报
回复
7.20正好是在不上论坛的时间

CSDN还是会时不时冒出人才来的

潜心研究需要,时不时出来娱乐下也是需要的嘛,不知道搂主能不能理解下这句话

CSDN的一半功能是用来娱乐的,包括写写有点意思不一定技术含量很足的SQL,也是一种娱乐
亥亥 2010-08-19
  • 打赏
  • 举报
回复
一页太长了了
pavee 2010-08-18
  • 打赏
  • 举报
回复
如梦方醒
yhtapmys 2010-08-17
  • 打赏
  • 举报
回复
猛将哥
qulonghui 2010-08-17
  • 打赏
  • 举报
回复
路过,顺便瞻仰。
Rotel-刘志东 2010-08-12
  • 打赏
  • 举报
回复
!!1`
feilniu 2010-08-12
  • 打赏
  • 举报
回复
[Quote=引用 76 楼 feilniu 的回复:]

原理不是脱离实践的纯理论,而是对程序和工具内在工作机制的深入理解和把握。

我从来没有认为理论比实践更重要。这种争论没有意义,就好像争论爱因斯坦和爱迪生谁更伟大一样。

……

其实每一个技术上的问题都是加深对原理理解的契机,正如同每一个科学理论的被证伪都意味着新的理论飞跃一样。这样的机会,轻易放过就太可惜了。
[/Quote]

最近claro的“每日一个小问题”系列,对于理解原理甚有帮助。不错!
加载更多回复(250)

11,849

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 非技术版
社区管理员
  • 非技术版社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧