我正在寻找处理 SQL Server 2012 可用性组中计划的 SQL Server 代理作业的最佳实践。也许我错过了一些东西,但是在目前的状态下,我觉得 SQL Server 代理并没有真正与 SQL2012 的这个强大功能集成在一起。
如何让计划的 SQL 代理作业知道节点切换?例如,我有一个在主节点上运行的作业,它每小时加载数据。现在,如果主要服务器出现故障,我如何激活现在成为主要服务器的辅助服务器上的作业?
如果我总是在辅助上安排作业,它会失败,因为辅助是只读的。
sql-server sql-server-2012 sql-server-agent availability-groups
我有一个数据库,我将文件加载到临时表中,从这个临时表我有 1-2 个连接来解析一些外键,然后将这些行插入到最终表中(每个月有一个分区)。我有大约 34 亿行数据,用于三个月的数据。
将这些行暂存到最终表中的最快方法是什么?SSIS 数据流任务(使用视图作为源并具有快速加载活动)或插入 INTO SELECT .... 命令?我尝试了数据流任务,可以在大约 5 小时内获得大约 10 亿行(服务器上有 8 个内核/192 GB RAM),这对我来说感觉很慢。
performance sql-server insert sql-server-2012 query-performance
我有一个将 BlockOnPossibleDataLoss 设置为 false 的 dacpac,但是当我使用 sqlpackage.exe 运行它时部署被阻止,告诉我“列 [a] 被删除,可能会发生数据丢失。”
但是,当我使用完全相同的部署配置文件并从 Visual Studio 2012 发布时,它会通过。
sql-server sql-server-2012 ssdt visual-studio-2012 data-tier-application
SQL 管理工作室允许为所有 db 对象创建脚本,但是到目前为止我找不到正确编写模式或用户脚本的方法。用户对架构的权限不包含在创建的脚本中。我做错了什么还是微软她有点马虎?
我有几个工作包,我在 sql server 代理中设置了一个工作。有时我应该一起跑。以给定的顺序运行它们的最佳方法是什么?我有点惊讶 sql server 代理无法将作业作为要执行的作业步骤包含在内。我确实尝试过
我在 sql 代理上配置了几个邮件配置文件,如何选择这些配置文件中的哪些用于发送特定 sql 代理作业的通知?
根据 SQL Server 2008 R2 的 BOL,数据类型十进制需要以下存储字节:
Precision Storage bytes
1 - 9 => 5
10-19 => 9
20-28 => 13
29-38 => 17
Run Code Online (Sandbox Code Playgroud)
但是,当我对格式为十进制 (19,5) 且值为 10999.99999 的列执行 datalength() 时,我得到了 5 个字节?根据我的理解,精度为 10 而不是 9,应该产生 9 个字节。
这导致两个问题:
具有此列的表的大小是否不取决于列定义,而是列中的真实值定义了表大小?
为什么 BOL 中的信息与 datalength() 返回的信息不匹配?
在数据库项目的项目设置中,我可以从我的数据层应用程序中设置版本号,但是手动设置它有点低效。我想自动增加内部版本号,就像其他 VS 项目一样。如何才能做到这一点 ?同时我想在生成的dacpac文件中看到这个版本号。
我有一个大约有 120 亿行(行大小 32 B)的表,每个月增加 3 亿行。我每个月都设置了分区,每个月都有 8 个数据文件(因为我目前只有 8 个 CPU),用于存储我连接了 SAN 的数据。这台机器(W2008R2 64 位,MSSQL2008R2)有 192 GB RAM,但我仍然觉得在使用聚集索引检索数据时速度很慢。我计划稍后将这些数据与 SSRS 一起使用。我应该考虑什么来提高性能?
sql-server ×6
performance ×2
ssdt ×2
datatypes ×1
dmv ×1
insert ×1
scripting ×1
ssms ×1
ssrs ×1