提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:杨鹏连|2021-01-21 10:29:37.567|阅读 189 次
概述:SQL Prompt可以帮助防止在数据库代码中积累技术债务。它会立即向团队发出警报,警告可能无法阻止您的代码按预期工作的问题,但最终可能导致性能,维护或安全性问题。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
SQL Prompt是一款实用的SQL语法提示工具。SQL Prompt根据数据库的对象名称、语法和代码片段自动进行检索,为用户提供合适的代码选择。自动脚本设置使代码简单易读--当开发者不大熟悉脚本时尤其有用。SQL Prompt安装即可使用,能大幅提高编码效率。此外,用户还可根据需要进行自定义,使之以预想的方式工作。
SQL Prompt的代码分析功能可帮助您在键入时发现代码问题和代码开发过程中的隐患。它还提供了改进代码的技巧,并提供了指向文档的链接,这些文档提供了有关每个受支持规则的建议,因此您可以决定最佳的操作方案。安装或升级到SQL Prompt 9后,您将看到两个新菜单项:启用代码分析和管理代码分析规则。确保已选中“启用代码分析”。
当您打开现有查询或开始在新窗口中键入内容时,代码分析功能将开始发挥作用。它将在后台解析您的代码,并根据一组内置规则检查SQL语法。这些规则旨在捕获可能导致代码失败或执行不正确的即时问题,消除潜在的性能问题,突出显示不赞成或过时的语法并鼓励最佳编码实践。代码问题和改进建议在问题编辑器中以绿色波浪线显示在查询编辑器中。
如果单击“管理代码分析规则”,您将看到SQL Prompt当前支持的各种不同类型的规则。您还可以在其中控制要启用或禁用的规则。
当前,所有规则都是全局的,但是我希望后续版本允许更精细的控制。例如,开发人员可能希望针对每个服务器或数据库配置规则,就像您对其他“提示”功能(如“标签颜色”)所做的一样。他们可能还希望能够建立和在多组规则之间进行切换,这取决于他们当前正在从事的项目,其使用方式类似于在多种代码格式样式之间使用和交换。
打破规则…
通过打破一些规则,让我们看看SQL Prompt的代码分析功能的实际作用。这是我们的原始查询:
USE WideWorldImportersDW; GO SELECT TOP 10 City, SUM(Profit) FROM Dimension.City c, Fact.Sale WHERE [Latest Recorded Population] !=0 AND City.[City Key] = Sale.[City Key] GROUP BY City ORDER BY SUM(Profit) DESC;在SSSM中打开脚本时,可以看到SQL Prompt突出显示了一些问题!哦,男孩,看看那些绿色的,弯曲的线条。不要在家尝试此查询!
让我们看看如何使用代码分析来改进代码。将鼠标悬停在上TOP 10,我们看到此代码使用旧式TOP子句:
当我们单击时TOP 10,代码将突出显示为绿色,并出现带有灯泡的蓝色图标。代码以绿色突出显示时,我们可以单击灯泡图标或按Ctrl以查看详细信息。
弹出“问题详细信息”窗口,告诉我们有关该问题的更多信息,我们可以转到在线文档以获取更多信息,也可以选择禁用该规则。
如果我们选择从“问题详细信息”窗口中禁用规则,则会显示一个红色的禁用图标,绿色的波浪线消失。
接下来,代码分析告诉我们,我们具有不合格的列名:
该问题的详细信息提供的建议:“列名应该是合格的,其表名,如果它是一个连接的一部分或者是子查询。即使当前是明确的,在某些时候也可能会做出更改,从而导致错误。”
为了解决这个问题,我们首先给表命名。然后,我们节省了一些时间,并使用SQL Prompt的内置“合格对象名称”(Ctrl + B,Ctrl + Q )功能,而不是手动限定对象名称。我们正在进步!我们的查询只剩下两个问题。第一个问题是我们使用的是老式的连接语法。
与严格的规则相比,与其他类别相比,风格规则听起来更像是个人喜好。但是,破坏良好的样式惯例可能会带来比您想象的更多的麻烦,因为这通常会使您的代码更难于他人阅读和理解,并且有时还更容易引入错误。
尽管仍然支持旧式内部联接,但它们没有提供比ANSI标准JOIN语法更好的优势。此外,如果WHERE在更改其他子句时不小心删除或注释了该子句怎么办?查询仍将愉快地执行,但是您现在有了交叉联接,而不是预期的内部联接,这可能会导致错误的结果。为了解决这个问题,我们重写查询以使用ANSI标准JOIN语法。使用显式联接而不是旧式联接的一个有益的副作用是,SQL Prompt可以ON为我们建议并插入该子句。
最后,代码分析告诉我们!=应该用<>运算符替换运算符。
现在,我们选择禁用某些规则,并更改查询以遵循其他规则和最佳样式惯例。最后一步可能是使用SQL Prompt的Format SQL(Ctrl + K,Ctrl + Y )功能来坚持格式样式。最终查询如下所示:
SELECT TOP 10 c.City, SUM(s.Profit) FROM Dimension.City c INNER JOIN Fact.Sale s ON s.[City Key] = c.[City Key] WHERE c.[Latest Recorded Population] <> 0 GROUP BY c.City ORDER BY SUM(s.Profit) DESC;通过研究代码分析建议,我们现在已经知道(或被提醒)应该在TOP子句,合格的对象名称,显式联接和ANSI样式运算符中使用推荐的括号。
我的代码违反了一些规则,我该怎么办?
第一个开始是“代码分析”文档,您将在“问题详细信息”窗口中看到该文档。对于某些规则,记录下来的规则描述应该足以让您了解如何修复代码。
但是,对于其他规则,在决定采取正确的措施之前,您可能需要更多的指导并进行一些研究。Redgate正在构建为每个规则提供的信息,并且您可以期望看到开发的文章库,它们提供了有关如何处理这些问题的更实用建议。如果不确定,请遵循《Transact-SQL参考》中Microsoft的建议。
概要SQL Prompt 9启动时包含60多个代码分析规则,这些规则检查代码中的最佳做法,不推荐使用的功能,对性能的影响,旧样式等。这只是该功能的第一个版本。随着它的发展,我个人希望能够对每个服务器和数据库启用/禁用规则,根据我正在从事的项目在规则集之间进行切换,并最终根据建议自动修复代码中的问题。
但是,SQL Prompt的代码分析功能已经帮助我确定了代码中的几个问题和潜在的改进,并提醒我也更改了某些SQL Prompt代码片段中的代码。我知道这是一个伟大的功能,它将帮助团队防止在其代码库中积累技术债务。
当然,永远不要单靠工具。工具可以为您提供帮助,但始终确保您了解工具为何提出某些建议。将该工具用作提醒,然后从中学习成为更好的SQL开发人员🙂
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
文章转载自:本文将演示如何使用DevExpress WPF Grid控件实现列和带的固定,欢迎下载最新版组件体验!
在本文中,我们将探讨如何通过使用 JxBrowser 和 Quill.js 将现代富文本编辑器嵌入到 Java 桌面应用程序中,来克服 Swing、JavaFX 和 SWT 中内置编辑器的局限性。
Word 文档中的批注通常用于协作审阅和反馈。这些批注可能包含文本和图片,它们为文档改进提供了重要的参考信息。本文将演示如何使用 Spire.Doc for Java 在 Java 中提取 Word 文档中的批注文本和图片。
本文主要介绍如何使用DevExpress WinForms Data Grid组件实现列重新排序,欢迎下载最新版组件体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢