zoukankan      html  css  js  c++  java
  • Linq2Sql VS SQL

      写博客的频率越来越小了,呵呵,主要是越来越忙。现在发现自己的博客有点像是“月经贴”了。

      最近学习了一下Sql Server2005后的新特性,主要是Sql语言和数据库性能的。知识储备还是那些经典的Sql语句,出来了Over,row_number,RANK,dense_rank,pivot,unpivot这些新功能,一直没有去学,去用,真是惭愧啊。

      然而我的题目确又是Linq2Sql VS SQL,why?主要是关于这两个方面的效率的问题。现在看来Linq2Sql真是一个好东西,C#中使用Linq2sql,终将转化成sql语句交给数据库执行,也就是说从绝对角度来讲,比直接使用sql语句是要慢的。但实际上,在具体实施过程中未必。由于linq2sql的转化是执行时加载的,因此,所做的转化会根据目标任务进行调整,生成非常好的SQL语句。这一点,在表达简单逻辑(CRUD)没有优势,但是涉及相对复杂一点操作的时候,这种调整就显得有意义了。怎么说呢?就好像linq2sql是一个专业的英语翻译,和直接能说英语的你比较,简单的表达沟通,通过翻译没有意义,但是,一旦情况复杂了,比如一大段的意思的交流,专业翻译所作出的表达或许更加“信、雅、达”(比如分页,我们通常会通过两次top的sql语句实现,而人家linq2sql的skip,take则翻译成row_number,这就是专业的好处,当然,如果你的sql很专业了除外。)通常,项目组中大多数人无法达到多专业的水平,因此,一个项目开发后运行起来,linq2sql并不比sql慢多少。

      使用linq2sql表达复杂逻辑的时候,更符合自己的写代码习惯,这是其一;其二,如果直接采用sql,那么会弄得sql拼凑复杂,到处是没有智能感知的字符串书写,容易出错;你说可以采取每次执行简单sql语句,在代码中组织调用来表达复杂逻辑,嗯,不错,但,这也带来了多次的数据往返,降低数据库性能。这说明linq2sql还是非常不错的,微软是个好人,呵呵。

      另外推荐几篇写的非常好的关于Sql的博客:

         sql查询入门:http://www.cnblogs.com/CareySon/category/233560.html

    总结SQL Server窗口函数的简单使用

    动态SQL开发基础和经验再总结

      

  • 相关阅读:
    测试用例原理以及设计方法
    软件测试方法大汇总(转)
    黑盒测试用例大集
    博客第一篇章
    什么是Shell脚本
    部署 Django
    Django 国际化和本地化
    Django与CSRF 、AJAX
    认证系统 Authentication
    Django与缓存
  • 原文地址:https://www.cnblogs.com/ozheric/p/2050748.html
Copyright © 2011-2022 走看看