8kb*_*8kb 4 sql t-sql database sql-server database-design
我的公司正在使用SQL Server 2008 Express开发一个开发项目.我们计划在主表中存储的数据量将快速超过Express的4GB大小限制.我们可以用SQL Server 2008 R2购买自己一段时间,但最终我们也将超过10GB的限制.
在购买标准版许可证之前,团队负责人希望听取所有可用选项.我们公司的专业知识是SQL Server和Oracle,因此使用MySQL或PostgresSQL将被视为最后的手段.
我能想到的唯一选择是将主表水平划分为独立的不同数据库的设计.此外,还有一个中央数据库来存储有关数据存储位置的信息.
例如,2008的所有表数据将存储在DB_2008中,DB_2009中的2009数据中,依此类推.元数据表可能如下所示:
PKStartDate PKEndDate DBName
----------- ---------- ----------
2008-01-01 2008-12-31 DB_2008
2009-01-01 2009-12-31 DB_2009
2010-01-01 2010-12-31 DB_2010
Run Code Online (Sandbox Code Playgroud)
此表将用于确定存储过程的数据的数据库位置.我们的大多数代码已经使用参数化的动态SQL,因此实现起来并不困难.
有没有人曾经这样做过?
这种类型的设计是否有既定的模型,还是只是一个可怕的想法?
Ben*_*n M 13
我意识到这并没有完全解决你的问题,但根据我的经验,砍掉像这样令人讨厌的kludge 总是更加昂贵 - 想想开发和维护每小时的美元,再加上你失去开发真正重要的功能的时间 - 首先要购买合适的工具.
编辑:为什么标准版而不是工作组?如果Express满足您的功能要求,Workgroup也会满足您的要求,它比标准版便宜3500美元.尽管如此,与上面描述的鞍座相比,要么是一个讨价还价 - 如果你可以通过CAL而不是处理器获得许可,那么加倍.:-)
这是一个可怕的想法.IANAL,但即使使用此方案,您仍可能违反SQL Server许可.他们提供了关于"多路复用"等各种各样的精美印刷品.
即使您使用它,您也可能会遇到令人讨厌的性能和身份验证问题,并且维护数据会很麻烦.假设您的开发人员不能免费工作,购买许可证会更便宜.
不要这样做.