SQL Server 2008 架构更改的最佳实践

     2023-03-14     110

关键词:

【中文标题】SQL Server 2008 架构更改的最佳实践【英文标题】:Best practice for SQL Server 2008 schema change 【发布时间】:2011-05-24 20:13:51 【问题描述】:

我正在寻找有关以下方面的信息:

将开发数据库的架构更新到生产数据库的最佳实践是什么,或者更简洁地进行一般的数据库架构更改。

生产数据库是两个不同 ASP.NET 网站的后端。

我们的架构更改过程相当稳健,每个“迁移”实际上都是一个包含架构更改的 .cs 文件。然后,我们将使用 ADO.NET 对 db 应用架构更改。

我的问题更多是关于数据库的连接性。

我应该停止访问数据库的两个网站吗?我想我应该。 我是否应该将数据库置于单用户模式。看起来我应该这样做,但我对此并不完全有信心。

我会错过什么?在数据库架构更改之前,有哪些事情让您感到困扰。

【问题讨论】:

【参考方案1】:

理想情况,但并非总是可以实现:您进行的架构更改与您网站的 V 版本兼容。然后您将 V 发布到您的 Web 服务器。一旦您的所有 Web 服务器都达到 V,您就可以执行任何清理(填充缺失值等),然后进行适当的可空性更改。

【讨论】:

【参考方案2】:

我没有考虑使用 .cs/ado.net 路由来进行架构更改。我们所做的是创建 'delta' .SQL 文件 - SQL 来进行更改。这些是针对已知修订的架构执行的以进行更改,并且运行 .SQL 是部署的一部分。

尽我们所能,我们还尝试通过检查架构中的特定内容(例如列、索引等)的存在来确保它们多次安全运行。这样它们就可以“意外”多次执行。

当我们部署时,我们有一天/一周的特定时间,警告用户/客户,关闭网站等。在发布前的最后几天,几乎每天都在开发和暂存服务器上进行“实践”部署,最终部署的信心很高。

在 SQL 中保留架构更改,它们看起来更像是他们修改的“主”架构 SQL,因此更容易跟踪。调试也更少!

它们也与其他代码一起在 TFS 中进行管理。

【讨论】:

切向,关于多次执行是否安全:此属性称为幂等性。您的 .SQL 文件是幂等的。【参考方案3】:

如果更新更改了列名、存储的过程参数等内容,则始终在进行架构更新之前使应用脱机。

如果更新只是针对不影响数据正常处理的事情,那么您可能可以“热”地这样做。此类别适用于您添加索引、表格等内容时。

如果有人在处理架构更新时使用该应用程序,您很可能会发现自己处于数据一致性受损的情况。

如果此更新需要对您的 Web 应用程序文件进行相应更新,请在执行更新之前使站点脱机。你不知道谁可能正在查看一个页面并准备点击提交,结果却报错...

此类维护通常在您的非高峰时段进行。您需要提前通知用户站点何时关闭以及关闭多长时间。

此外,我们使用 Redgate 的 SQL Compare 等工具来编写数据库更新脚本。这是在实际推送之前从生产数据刷新的登台服务器上进行的,以确保没有意外并且可以非常快速地完成。

关于单用户模式,您通常使用它来限制对单个管理工作室实例的数据库访问。作为部署的一部分,我们通常不会这样做。

【讨论】:

SQL Server 索引最佳实践(SQL Server 2008)[关闭]

】SQLServer索引最佳实践(SQLServer2008)[关闭]【英文标题】:SQLServerIndexingbestpractice(SQLServer2008)[closed]【发布时间】:2014-02-1107:54:42【问题描述】:我对选择正确的索引有一些疑问并有一些疑问:聚集索引什么是最好的候选人?通... 查看详情

SQL Server 架构最佳实践

】SQLServer架构最佳实践【英文标题】:SQLServerschemabestpractices【发布时间】:2010-11-1712:51:57【问题描述】:我正在为应用程序设计一个新数据库。我想从一开始就注意安全性(这应该是常态!)。任何人都有一个资源链接,该链... 查看详情

在 C# 中创建(按需)SQL Server 2008 Express 数据库的最佳实践?

】在C#中创建(按需)SQLServer2008Express数据库的最佳实践?【英文标题】:Bestpracticetocreate(ondemand)SQLServer2008ExpressdatabasesinC#?【发布时间】:2011-01-2120:58:07【问题描述】:目的是在全新的SQLServer2008Express数据库中处理用户的数据(... 查看详情

Sql Server 2008 MERGE - 获取计数的最佳方式

】SqlServer2008MERGE-获取计数的最佳方式【英文标题】:SqlServer2008MERGE-bestwaytogetcounts【发布时间】:2010-11-1902:28:32【问题描述】:我想知道你们会推荐什么作为从SqlServer中的MERGE语句中获取操作计数的最佳方法。所以,即我运行一... 查看详情

什么是 SSIS 包部署和更改跟踪最佳实践?

...时间】:2009-10-1510:05:24【问题描述】:关于我的SQL数据库架构和数据,我有一个非常强大的开发环境(一切都是源代码控制的,部署是自动化的,等等),但是当涉及到SSIS包时,这个过程非常乏味并且完全是手动的。如何自动... 查看详情

连接 WPF 和 SQL Server 的最佳实践

】连接WPF和SQLServer的最佳实践【英文标题】:BestpracticetoconnectWPFandSQLServer【发布时间】:2021-06-2501:34:43【问题描述】:我使用WPF已经有一段时间了,但由于资源不足,我使用AccessFiles作为数据库。最近我有机会接触到一个SQL数据... 查看详情

在 SQL Server 2008 R2 和 SQL Server Compact 4 中存储日期/时间数据的最佳方式

】在SQLServer2008R2和SQLServerCompact4中存储日期/时间数据的最佳方式【英文标题】:Bestwaytostoredate/timedatainSQLServer2008R2andSQLServerCompact4【发布时间】:2013-06-2712:29:46【问题描述】:我们正在C#4中开发一个使用SQLServer2008R2作为后端的应... 查看详情

将 mongo 集合导出到 SQL Server 的最佳实践

】将mongo集合导出到SQLServer的最佳实践【英文标题】:BestpracticesforexportingmongocollectionstoSQLServer【发布时间】:2012-02-2209:05:55【问题描述】:我们使用MongoDB(在Linux上)作为我们的主数据库。但是,我们需要定期(例如每晚)将一... 查看详情

在一定时间后自动更改 SQL 服务器记录的最佳实践?

】在一定时间后自动更改SQL服务器记录的最佳实践?【英文标题】:bestpracticeforchangeSQLserverrecordautomatically,aftercertainamountoftime?【发布时间】:2021-09-0720:15:36【问题描述】:我目前正在为我的问题寻找最佳实践,我有这张表A,对... 查看详情

为数据仓库创建 SQL Server 数据库的最佳实践

】为数据仓库创建SQLServer数据库的最佳实践【英文标题】:BestpracticeforcreatingSQLServerdatabasesforadatawarehouse【发布时间】:2011-01-2512:41:39【问题描述】:我即将为我们的数据仓库创建2个新的SQLServer数据库:数据仓库-存储数据的地方... 查看详情

如何将架构绑定添加到 SQL Server 2008 中的视图

】如何将架构绑定添加到SQLServer2008中的视图【英文标题】:HowtoaddschemabindingtoaviewinSQLServer2008【发布时间】:2014-02-0110:26:26【问题描述】:我正在尝试在我的SQLServer2008数据库中创建索引。但是当我取消注释WITHSCHEMABINDING时遇到错... 查看详情

从 ASP.NET Core 连接到 SQL Server 的最佳实践?

】从ASP.NETCore连接到SQLServer的最佳实践?【英文标题】:BestpracticesforconnectingfromASP.NETCoretoSQLServer?【发布时间】:2018-07-2618:59:01【问题描述】:我最近遇到了一些困难,因为SQLServer不喜欢默认的AppIdentityUser进行登录,所以我继续... 查看详情

安装sqlserver2008不能更改安装路径吗

安装sqlserver2008能更改安装路径。工具/材料:sql server2008安装程序。1、首先运行sql server2008安装程序。2、在sql server 2008安装窗口中,点击“全新SQLServer独立安装或向现有安装添加功能”。3、在sql server 2008安... 查看详情

MS Access 前端与 SQL Server 后端查询存储最佳实践 [关闭]

】MSAccess前端与SQLServer后端查询存储最佳实践[关闭]【英文标题】:MSAccessfrontendwithSQLServerbackendquerystoringbestpractices[closed]【发布时间】:2020-09-0409:03:34【问题描述】:我正在尝试更好地优化我的项目组织。使用MSAccess作为前端,使... 查看详情

如何将架构从 SQL Server 2008 迁移到 SQL Server CE 4?

】如何将架构从SQLServer2008迁移到SQLServerCE4?【英文标题】:HowtomigrateschemafromSQLServer2008toSQLServerCE4?【发布时间】:2011-10-0321:03:38【问题描述】:是的,标题是正确的该应用现在需要一个本地数据库,该数据库将是ssce4.0,因此...... 查看详情

设计表以支持使用 sql server 更快地更新一个字段的最佳实践

】设计表以支持使用sqlserver更快地更新一个字段的最佳实践【英文标题】:BestPracticetodesigntablestosupportupdateonefieldfasterusingsqlserver【发布时间】:2011-12-1013:18:06【问题描述】:我正在开发类似系统的工作流。我有一个任务表和状态... 查看详情

谁能建议将数据库从 SQL Server 2008 迁移到 2005 的最佳方法?

】谁能建议将数据库从SQLServer2008迁移到2005的最佳方法?【英文标题】:CananyonesuggestthebestwaytomoveadatabasefromSQLServer2008to2005?【发布时间】:2015-12-2816:22:44【问题描述】:我在SQLServer2008中有一个大小约为100GB的数据库。我想在SQLServe... 查看详情

SQL Server 2008 - 删除架构所有权

】SQLServer2008-删除架构所有权【英文标题】:SQLServer2008-Removingschemaownership【发布时间】:2011-07-0902:31:56【问题描述】:我刚刚创建了一个新的Web应用程序,它接受来自用户的一些基于表单的输入并将其插入到数据库中。为此,我... 查看详情