• ----:)欢迎访问源码网(:----
    • 首页
    • 博客
    • 学院
    • 下载
    • 论坛
    • 影视
    • 发布源码
    • RSS
    • ITPig
    • 笑话网
    • 百家姓
    • 繁體中文

源码网 - 中国第一源码门户
选择镜像:网通镜像 - 电信主站
  • 首 页
  • 新闻动态
  • 网站运营
  • 网页制作
  • WEB开发
  • 编程开发
  • 图像媒体
  • 操作系统
  • 数据库
  • 服务器
热门搜索 优化 SEO 故事 cms IIS7 MySQL 个人 AdSense 主题推广 | 文章搜索: 高级搜索
会员登录/控制面版您的位置: 学院首页 >> 数据库 >> MSSQL >> 详细内容
 

推荐文章

  • SQL数据库的备份、压缩与SQL数据库数据处理的方法
  • 压缩SQL数据库
 
 

热点文章

  • 安装SQL Server 2005实例环境图解
  • SQL数据库的备份、压缩与SQL数据库数据处理的方法
  • SQL SERVER 2005数据库镜像
  • SQL数据库还原出现错误112(磁盘空间不足)的解决办法
  • 如何使用SQL Server 2000中的XML功能
  • Server 2005性能排错
  • SQL Server 2000中的SQL语言简介
  • 在SQL Server中的关系型数据仓库分区策略
  • SQLServer删除日志方法
  • 压缩SQL数据库
  • SQL精妙语句
  • SQL Server 2000中的SQL语言简介(一)
 
 

相关文章

  • 微软新一代数据库SQL Server 2008明年初上市
  • SQL Server非正常删除日志文件(ldf)恢复方法
  • SQL Server 性能优化工具
  • SQL Server性能分析参数
  • SQL Server数据仓库相关概念及构建流程
  • 详解SQL Server中数据库快照工作原理
  • SQL Server对图像数据的存储机制介绍
  • SQL Server数据库中存储引擎深入探讨
  • 构造SQL Server的安全门
  • SQL Server数据库中使用触发器经验谈
  • SQL Server乐观锁定和悲观锁定实例
  • 四项技术 助你提高SQL Server的性能
 
 

百度搜索

 
 

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

  • 阅览次数:
  • 文章来源: a hear
  • 原文作者: 不详
  • 整理日期: 2007-04-06
  • 发表评论
  • 字体大小:
  • 小
  • 中
  • 大

在这篇文章中,将会列出10个常见的需要避免的查询设计错误。阅读此文,确保你不会成为这些错误的受害者,考虑给出的建议,修改你的查询。

1、数据模型和并发查询

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

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

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

2、什么是最好的技巧?

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

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

3、以原有的方式……

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

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

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

5、这是经典错误

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

6、我没有注释

不幸的是,我见过的大多数代码都很少或者根本没有注释。所以进行更改是一件令人畏惧的任务,即使是对那些最初开发了这个应用程序的开发人员和/或数据库管理员。注释你的代码真的是一个快速并且不痛苦的过程,对于未来的开发人员以安全和省时的方式理解和修改代码来说,这是至关重要的。

7、当然,我会测试的……

很少开发人员和数据库管理员会喜欢简单的测试,他们也不喜欢在发布代码到产品环境之前进行严格的测试。并且,开发环境通常在硬件和数据量上都达不到产品环境的规模。就是说,简单的查询在几百个或者甚至是几千个记录上都可以工作良好,但是在产品环境中就不是这样了。对于你的查询没有别的更好的准备办法了,只有在测试环境中对含有碎片的表中几百万条数据进行测试,以此来确保查询会按照你的期望运行。

8、让我用这个吧,就是这个!

输入SELECT语句,没有包含WHERE子句,期望中间层或者前端以比SQL Server更加有效的方式来处理得到的数据,这是个很糟糕的主意。SQL Server就是设计用来处理查询,并且将其执行得非常高效的。将大量的数据移动只会让被洪水包围的系统和网络陷入困境。一定要尽可能地过滤你的数据,避免对性能产生影响。

9、请让我用视图来查询吧

视图可以满足你简化复杂查询中的代码的需求。它们通常用来帮助有权利的用户查询数据库。不幸的是,太多的好事情也会严重影响性能。视图就是一个简单的SELECT语句,视图的SELECT语句必须在每次你输入SELECT语句的时候再次输入。限制视图的使用,防止它们查询其他视图。或者,构建一个存储过程来查询数据,并且传递给它需要的参数来满足应用程序或者用户的需求。

10、不,这不是我的代码……

我们都犯错误,我们最后工作的那个系统应该是从我们在当前系统中获得的知识中获益。所以,记录你学到的东西,并且把它与你的团队共享,让集体受益。当你有机会的时候,回到先前的系统中,用你从那个项目中学到的知识改善它们。

结论

如果你在查询中犯了以上或者其他的错误,承认错误,努力去纠正它。说起来容易做起来难,但是纠正这些问题会让企业获益,并且对应用程序的名声有好处。看完了这篇文章,开始为你正在做或者以后要做的项目构建一个私人的代码指南吧。

上一篇:PHP使用zlib扩展实现页面GZIP压缩输出
下一篇:构建支持Master/Slave读写分离的数据库操作类
  • 网友评论:
  • 查看所有评论
  • 我要发表评论
您的网名:
留言主题:
你要发表的内容:

 

关于本站 | 广告联系 | 版权声明 | 网站地图 | 发布软件 | 帮助中心 | 源码论坛

Copyright © 2005-2007 CodePub.Com  程序支持:木翼  滇ICP备05005971号