【问题标题】:SQL Server Partitioning and Configuration ManagementSQL Server 分区和配置管理
【发布时间】:2017-03-06 14:35:24
【问题描述】:

我在一个开发团队中工作,我们目前使用数据库项目通过 TFS 和 Visual Studio 管理我们的 SQL Server 数据库架构(表、存储过程、用户定义类型等)。我们使用 Visual Studio 中的架构比较工具保持数据库的本地开发副本同步。

我目前正在对几个巨大的数据表进行分区,这导致了 500 多个文件组和文件,部分基于我们希望在 SSD 上与旋转 HDD 上的数据。

我的问题是,是否有人对如何在 TFS 中管理数据库架构以使每个开发人员不必在每台开发机器上设置 500 多个文件组/文件有任何建议或经验?

我想避免这种情况的原因是因为

  1. 在我们的开发机器上,我们只有少量数据 根据磁盘空间加载。
  2. 我们计划在生产服务器上进行维护工作,以根据使用年限将数据从 SSD 分区移动到 HDD 分区。这意味着我们的生产分区功能无论如何都无法匹配我们的开发机器。

【问题讨论】:

    标签: sql-server visual-studio-2012 tfs


    【解决方案1】:

    首先,根据您的情况,您可以尝试使用服务器工作区。当您需要修改文件或项目时,只需将其签出即可。

    当您使用服务器工作区时,Visual Studio 只保留一份 每个文件。这可以显着减少磁盘空间使用量并且 当你有很多项目时提高性能。我们建议 如果满足以下条件,则使用服务器工作区:

    • 您的工作区包含超过 100,000 个项目。
    • 您希望使用 Visual Studio 2010 或更早版本来处理工作区。
    • 您需要使用 Enable get latest on check-out 选项。

    我不确定您是如何处理数据库项目的。关于如何将现有数据库置于源代码控制之下,包括以下步骤:

    1. 您创建了一个数据库项目。
    2. 您连接到现有数据库。
    3. 您将数据库架构从现有数据库导入到 数据库项目。
    4. 您查看数据库项目中显示的结果。
    5. 您将数据库项目及其内容置于版本控制之下。

    您还可以为您的数据仓库使用 SSDT 数据库项目。下面是一个如何构建数据库项目的示例(为简洁起见,我只在屏幕截图中显示了一些表格和视图)。您不必以这种方式构建它,但在这个项目中,它首先按架构排序,然后按对象类型(表、视图等),然后按对象(表名及其 DDL 等)。

    更多详细信息请参考此博客:Why You Should Use a SSDT Database Project For Your Data Warehouse

    【讨论】:

    • 我已经在 Visual Studio 中为我的数据库设置了 SSDT 项目。我试图避免签入 500 个额外的文件组,因为我希望其他开发人员不需要拥有它们。我想我可以将分区函数设置为指向单个文件组进行开发,检查并始终意识到生产会有所不同。
    • 您使用的是服务器工作区吗?如果是这样,您可能需要检查 TFS 服务器中的 500 个文件组。然而,对于开发人员来说,他们不必在每台开发机器上设置 500 多个文件组/文件。他们只需要签出他们需要的文件并修改它们然后签入。
    • 不,我没有使用服务器工作区,但我想我的问题并不清楚。我最大的担忧是开发人员工作站实际上只需要一个分区,因为磁盘空间有限。而且生产服务器上的分区永远不会匹配,因为我们将经常修改分区函数以获取 SSD 上的最新数据。
    • 我想我只需要以一种方式将其签入配置管理,然后手动管理配置管理和我的生产服务器之间的差异,用于分区功能、文件和文件组。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多