我有一个包含“模块”的大型应用程序,如Finance
,HR
,Sales
,Customer Service
。存储过程的位置是否影响其性能?
为了使应用程序易于管理并分配负载,我决定在每台服务器上为每个模块提供自己的数据库。还会有一个用于存储主要信息的数据库,例如有关用户的信息,一些全局查询表和一些安全性内容。
我现在正在尝试决定是否将模块特定的存储过程放置在其相应的数据库中,还是将它们全部保存在Master
数据库中。例如,存在名为dbo.sales_customer_orders
的存储过程,该存储过程仅从Sales
数据库表中选择数据。当然这个SP将会被用户执行很多次。因此,它应该在Sales
数据库中,还是在性能/可伸缩性/可靠性/安全性方面保留在Master
数据库中可以。
存储过程驻留在与其选择的数据库不同的数据库中吗?
在将它们放入不同的数据库之前,您是否考虑过每个模块的独立模式? – 2015-03-31 22:10:38
是的,我认为是一个单独的模式,但它意味着在1个数据库中的所有模块。它是一个多租户应用程序,所以我不能冒险为每个人和每个人都拥有一个单一的数据库。随着更多用户添加到系统中,它会崩溃,所以我决定按应用程序区域(即模块)“垂直分区”。这里有更多的信息(看看方法5)\t http://blog.techcello.com/2012/07/database-sharding-scaling-data-in-a-multi-tenant-environment/ – 2015-03-31 22:12:52