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开发基础和经验再总结

      

  • 相关阅读:
    Sum of a Function(区间筛)
    (01背包)输出方案数
    删边求概率
    完全背包输出方案数(dp)
    二分
    Just Arrange the Icons(模拟)
    Balls of Buma(回文串)
    dp思想
    刷题-力扣-190. 颠倒二进制位
    刷题-力扣-173. 二叉搜索树迭代器
  • 原文地址:https://www.cnblogs.com/ozheric/p/2050748.html
Copyright © 2011-2022 走看看