当前位置:  开发笔记 > 数据库 > 正文

SQL可移植性有多重要?

如何解决《SQL可移植性有多重要?》经验,为你挑选了2个好方法。

在我看来,从个人经验和SO问题和答案来看,SQL实现差异很大.SQL问题的首要问题之一是:您使用的是什么dbms?

在大多数情况下,使用SQL,有几种方法可以构建给定的查询,即使使用相同的方言也是如此.但我觉得有趣的是,各种方法的相对可移植性经常没有被讨论,也没有被高度重视.

但是,即使不考虑任何特定应用程序可能转换的可能性,我认为我们希望我们的技能,习惯和模式尽可能便携.

在使用SQL时,您更倾向于使用标准SQL语法?您如何积极地避免礼仪变化?请在不参考专有偏好的情况下回答,以达到更好的表现,大多数人会承认这通常是足够合法的辩护.



1> Jens Schaude..:

我投票反对标准/供应商独立的sql

实际上很少切换数据库.

没有一个数据库完全符合当前的sql标准.因此,即使您符合标准,您也不是独立于供应商的.

供应商差异超越了sql语法.锁定行为是不同的.隔离级别不同.

数据库测试相当困难并且正在开发中.如果你不是绝对需要它,就不需要在游戏中抛出多个供应商就更难.

供应商特定的调整有很多功能.(想想'限制',或'分析函数',或'提示')

所以精华: - 如果没有要求供应商独立,请专门为您实际使用的供应商. - 如果要求供应商独立,请确保谁支付账单,这将花费金钱.确保每个rdbms都可用于测试.并使用它 - 将每一段sql放在一个可插拔的特殊层中,这样你就可以使用数据库的强大功能并与不同的供应商合作 - 只有在差异是纯语法问题的地方才符合标准,例如使用oracle表示法(外部)连接与ANSI标准语法.



2> paxdiablo..:

我们非常认真地对待我们的商店.我们不允许非标准SQL或扩展,除非它们在所有主要平台上都受支持.即便如此,他们在代码中被标记为非标准,并且必须提供理由.

应用程序开发人员无法快速运行查询,我们可以明确分离职责.该查询仅由DBMS本身或DBMS的DBA调优进行优化.

真正的数据库,比如DB2/z :-),可以快速处理标准SQL.

我们强制执行此操作的原因是为客户提供选择.他们不喜欢被锁定在特定供应商的想法比我们更多.

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有