假设我们有collumns(A,B,C) 我们希望基于对从collumn进行计算:C一个标准来搜索这个表...等参数SQL和搜索查询计算值
表因为计算是复杂的,不能用sql查询表示... 我该怎么办?在应用程序级别进行过滤?
假设我们有collumns(A,B,C) 我们希望基于对从collumn进行计算:C一个标准来搜索这个表...等参数SQL和搜索查询计算值
表因为计算是复杂的,不能用sql查询表示... 我该怎么办?在应用程序级别进行过滤?
没有银弹这里的where子句。
优点
您可以在数据库级别相当复杂的计算,在数据库级做的优点是在RDBMS更接近数据和传送数据来回从磁盘,通过RDBMS通过网络到应用程序通常比RDBMS(执行SQL时)中的计算更加昂贵,并且仅向应用程序发送结果。
又亲是集中逻辑使得系统维护变得简单,但是...
缺点
...这取决于你所选择的数据库,你可能不会有多种选择的RDBMS层中可用的编程语言,因此对于更复杂的事情,在某些过程化SQL变体中编写您的任务可能会非常麻烦。
不在RDBMS级别执行此操作的其他原因是,如果计算是资源密集型(cpu,内存;认为O(n!)问题等),并且输出大小与输入大小相当。在这种情况下,将数据传送到应用程序端可能会有助于减轻数据库服务器资源(在某种意义上说,您可以分配计算任务;但是,如果应用程序服务器与数据库服务器位于相同的硬件上,则可能无法获得任何内容,除非您可以一路推到客户端;看看三层和多层架构)。
我正在使用的Microsoft SQL ...我如何使用SQL Server的编程语言? – GorillaApe 2010-10-15 11:21:58
@Parhs,你可以从http://www.aspfree.com/c/a/MS-SQL-Server/Implementing-Managed-code-in-SQL-Server-2005-using-Visual-Studio-NET-开始, 2005 / – Unreason 2010-10-15 11:31:35
另一种可能是创建一个为你做数学题对数据库的函数/存储过程,然后调用它的查询
你在使用什么服务器? – 2010-10-15 09:43:58
在选择行时,您是否可以不将复杂的计算结果与A,B和C一起存储,而不是计算结果? – 2010-10-15 09:44:05
指定你的数据库,因为可以在SQL中完成相当复杂的事情(例如在postgres中,将python,perl,tcl或pl与SQL混合起来很容易)。 – Unreason 2010-10-15 10:50:23