SQL Server查询设计:避免10个错误

2016-01-29 15:56 4 1 收藏

SQL Server查询设计:避免10个错误,SQL Server查询设计:避免10个错误

【 tulaoshi.com - SQLServer 】

随着SQL Server数据库的填充和持续的数据增长,以及用户对于次秒级响应时间的期望,避免编写糟糕的查询就是至关重要的了。在这篇文章中,将会列出10个常见的需要避免的查询设计错误。阅读此文,确保你不会成为这些错误的受害者,考虑给出的建议,修改你的查询。

  前十个列表

  1、数据模型和并发查询

  如果你在构建数据模型的时候没有考虑到数据的访问方式,将会导致难以处理的查询。你可能会用到根本不必要的JOIN增加代码,损害性能。

  要纠正这个问题,考虑一下需要访问数据的查询。如果查询在这个处理阶段不是很清晰,那么将来在写代码的时候就会更困难。很有可能是数据库设计过于复杂,可以通过简化来改善查询的性能。

  与此相关,如果你是个喜欢直观的人,那么就打印出数据模型,或者在你选择数据建模工具的时候查看一下在线的模型。这可以改善你的代码时间和精确性。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/sqlserver/)

  2、什么是最好的技巧?

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/sqlserver/)

  这就是声名狼藉的指针与基于集合的逻辑讨论。传统的至理名言说,对所有的数据库访问都使用基于集合的逻辑。一般来说,我同意这是最好的经验之一。当基于集合的逻辑是正确的选择的时候,却使用了指针,可能会对性能产生很大的损害。SQL Server的设计是使用基于集合的逻辑,并且在大多数处理中应该使用它。

  事分两面,另一面就是指针的例子。在这种情况下,指针逻辑胜过基于集合的逻辑。从这个信息引申出来的结论就是,判断你要执行的处理的类型,选择最适合需要的技巧。

  3、以原有的方式……

  SQL Server 2005为你的查询提供了一整套新的机会。所以使用老的办法可能仍然会起作用,但是也是时候去考虑一下最新的选择了。TRY…CATCH错误处理方法是你最先应该使用在代码中的技巧之一。此外还要考虑的是对层次进行处理的时候,可以用到通用表压缩;最后一项考虑是扩展关系型数据库引擎的功能:通用语言运行时(CLR)。这三项技术都在极大程度上改变了你使用SQL Server工作的方式,而它们只是冰山一角。

  4、你还让一只笨鹅在那里吗?

  检查你的代码,然后安排一个时间进行同样的查看,这是在部署代码之前必须要做的事情。检查你的代码,明确查询计划,是确保使用了合适的索引,并且查询会像你期望的那样运行的重要保障。

  5、这是经典错误

  输入SELECT *语句,想着表永远不会改变,这是一个经典的查询设计错误。即使在最简单的解决方案中,表的改变也是不可避免的,你需要查看代码确保没有包含一个额外的字段。或者,更糟糕的是,你必须等待应用程序崩溃,然后修正这些问题。最好的实践方案只是在你的查询中包含进来你需要的那些字段,然后必要的话就修改它们。不要把你的时间浪费在四处冒烟的模式中彻查代码。

来源:http://www.tulaoshi.com/n/20160129/1496849.html

延伸阅读
或许在应用程序代码中找到的最常见的错误就是这样的查询请求:它不是使用准备好的查询或程序,而是使用非参数特设的查询从数据库中请求数据。 不准备你的查询或者不使用存储过程会增加不必要的SQL Server计划缓存。什么是计划缓存呢?简单地说,它是SQL Server共享内存池的一部分,在这里,解析、编译和执行优化这些查询之后,查询执...
首先需要说明的是这篇文章的内容并不是如何调节SQL Server查询性能的(有关这方面的内容能写一本书),而是如何在SQL Server查询性能的调节中利用SET STATISTICS IO和SET STATISTICS TIME这二条被经常忽略的Transact-SQL命令的。 从表面上看,查询性能的调节是一件十分简单的事。从本质上讲,我们希望查询的运行速度能够尽可能地快,...
标签: SQLServer
这是困难我几天的问题.如果你像我一样刚刚学习,那么看看吧,如果你是高手,停下来看看吧,我们需要你们的指导,谢谢!              SQL Server连接中的常见错误: 一."SQL Server 不存在或访问被拒绝" 这个是最复杂的,错误发生的原因比较多,需要检查的方面也比较多. ...
在使用 SQL Server 的过程中,用户遇到的最多的问题莫过于连接失败了。一般而言,有以下两种连接 SQL Server 的方式,一是利用 SQL Server 自带的客户端工具,如企业管理器、查询分析器、事务探查器等;二是利用用户自己开发的客户端程序,如ASP 脚本、VB程序等,客户端程序中又是利用 ...
一."SQL Server 不存在或访问被拒绝" 这个是最复杂的,错误发生的原因比较多,需要检查的方面也比较多. 一般说来,有以下几种可能性: 1,SQL Server名称或IP地址拼写有误 2,服务器端网络配置有误 3,客户端网络配置有误 要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因. =======...

经验教程

576

收藏

28
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部