对于SQL存储过程编程,代码重用和模块化是一个好主意吗?
如果是这样,将这些功能添加到SQL存储过程代码库的最佳方法是什么?
我通常为常见和重复的任务创建标量值函数.我发现它既简化了与现有程序类似的新程序的开发,又在错误跟踪和故障排除方面提供了很多帮助.
由于性能问题,我试图远离表值函数.
我的经验法则是,如果它是一个计算,并且它在几个地方使用,那么我创建一个标量值函数.
您将发现在查询中使用函数是性能的灾难.这些函数成为优化器的黑盒子,因此您最终会将函数调用重新编码回查询中,以便在您获得表中的大量行时使其快速运行.
处理常见计算的更好方法是使用触发器或插入/更新查询将它们插入到新列中.这样,您可以索引计算的值并直接使用它,而不是每次需要时都计算出来.
在代码重用方面,Sql 并没有给您很大的灵活性。当涉及计算或其他不涉及修改表的任务时,我通常会创建函数。但是所有涉及写入表的任务以及诸如此类的事情我通常使用存储过程来更好地控制事务。
归档时间: |
|
查看次数: |
2515 次 |
最近记录: |