小编Jon*_*ica的帖子

SQL Server:需要 TSQL 或安全步骤:更改表组的整体排序规则

寻找一个安全的 TSQL(首选)或安全的步骤(如果可能的话,最好是自动化的)来一次性更改数十个表的排序规则。

背景

我们有一个数据库,SQL Server 2005,有大约 100 个表。

其中 30-40 个有一个不适合我们正在运行的应用程序的排序规则集。(我们需要它们都是“SQL_Latin1_General_CP1_CS_AS”但是这组表是“SQL_Latin1_General_CP1_CI_AS”)

可能的解决方案

我们找到了这个脚本:http : //www.codeproject.com/Articles/12753/SQL-Server-2000-Collat​​ion-Changer

找到解决方案的问题

但是这个脚本似乎引入了数据丢失的可能性,并且它似乎既不检测也不警告也不衡量是否会发生数据丢失。

使用感觉有风险!

社区问题

有没有更先进的方法来解决这个问题?

最好是一个脚本:

  • 检测是否会丢失数据并至少给出警告。(即使是一个只扫描表的脚本,考虑从排序规则 A 到 B 的更改,并告诉我如果进行此更改会发生什么......)
  • 可以批量工作(例如,我告诉它我的目标排序规则是什么,它对数据库中的所有表和列执行所有工作并报告它所做的工作)

谢谢!

sql-server collation

6
推荐指数
1
解决办法
725
查看次数

SQL Server:“正在恢复”状态下的日志传送:我可以暂时将其从恢复中取出来检查吗?

我知道目标数据库处于“恢复”状态是正常的

我还想做一些查询,以检查数据是否都是最新的。

我是否可以将它暂时置于只读、非恢复状态以检查数据,然后将其恢复到恢复状态,而不会破坏整个恢复链?

谢谢!

sql-server log-shipping

6
推荐指数
2
解决办法
1万
查看次数

SQL Server 2016:如何限制特定数据库的内存和 CPU

Windows 2016 上的 SQL Server 2016 标准版

我们有一个 8 核、128GB 的​​机器(实际上是一个 VM)。我们为我们的产品数据库最大化这个。(实例122GB,实例8核)

我们正在设置第二个 db,位于其自己的主轴组(较慢的磁盘)上,并且不希望它影响 prod db。这将在同一个 VM 上(根据我们的理解,我们可以通过这种方式使用现有的 SQL 许可证)。

这个第二个数据库必须由它自己的 SQL 实例提供服务,以便:

  • 限制消耗的 RAM(非常少,只有 4 或 8 GB)
  • 限制为 2 个 CPU 内核

或者我们可以在主实例中限制这个数据库吗?

(注意,Express Edition 不是一个选项,我们的数据库将超过 10 GB)

sql-server

6
推荐指数
2
解决办法
9138
查看次数

SQL Server 日志传送:RESTORE LOG 期间最热的 IO 在哪里:To db or to log?

使用 SQL Server 2008。

我已经使用 SQL 日志传送多年了。效果很好。

使用新的备用服务器(日志传送的接收者),我看到日志还原性能非常差,我想知道:在 MDF 和 LDF 中,在日志还原期间,一个命中率是否比另一个特别高?

背景:使用专用硬件,我对这方面没有问题。(公平地说,我一直对目标上的 ldf 大小不满意......但是你打算用恢复状态的数据库做什么?)

我现在正在试验云服务器和块存储。到目前为止......我对块存储的 IOPS 相当失望。日志恢复操作真的很慢(我们的主数据库服务器每 4 分钟输出一个日志文件,在目标上恢复每个文件需要 2 分钟以上!)。

所以我在争论是否:

  • 获得更快的块存储设备(mucho $$)---但这仅对 LDF 或 MDF 才有意义...如果我必须同时做这两个,那就太贵了(所以我的问题)
  • 找出云中 SQL Server 的另一个解决方案
  • 忘记 SQL Server 的云,因为 iops 不存在......

进一步挖掘发现:https : //serverfault.com/questions/261631/temporary-io-boost-for-an-mssql-server

这表明热 IO 将是 LDF ......这将是优化的地方......(尽管“恢复日志”不是该线程的明确议程)。

我们是否同意提高 LDF 磁盘的 IOPS 应该提高 RESTORE LOG 性能?

谢谢!

sql-server

5
推荐指数
1
解决办法
1228
查看次数

SQL Server 2008:测量特定表的每秒 tps/select 语句数?

讨论了如何针对整个数据库衡量活动:https : //stackoverflow.com/questions/5019593/sql-server-2008-transaction-per-second-for-specific-database

我的问题比较狭窄。

我们正在努力优化我们的应用程序的性能。要了解我们的工作情况,我们需要测量特定表上每秒/分钟/小时(首选小时)的 SELECT 操作。(这样我们可以在实施优化之前和之后进行测量,看看我们做得如何。)

有什么方法或工具可以做到这一点?

谢谢!

performance sql-server performance-tuning

5
推荐指数
1
解决办法
1198
查看次数

用于备份的 SQL Server 证书:到期日期重要吗?

如果我在 SQL Server 中有一个证书,用于备份:

  1. 证书过期后还可以创建备份吗?
  2. 证书过期后还可以恢复吗?

让这些证书过期有什么意义?(除了让我暴露于由于过期的证书而导致备份失败......)

sql-server backup certificate

5
推荐指数
1
解决办法
3752
查看次数

日志传送和日志文件:主站或从站上的日志都可以被截断/收缩吗?

SQL Server 2008,标准日志传送设置(嗯,使用 redgate,但这是一个非常正常的流程)。

在副本上,日志文件非常大。

想知道在备份/副本服务器上是否可以以某种方式缩小日志?

谢谢!

sql-server-2008 sql-server log-shipping

4
推荐指数
1
解决办法
229
查看次数

SQL Server 中的分页:是否需要 order by 子句?(目前,行被遗漏)

我们有一些代码可以分页查看 SQL 结果。(目前在 SQL Server 2008 上运行)

我们注意到当分页完成时,一些行没有返回。让我澄清一下:

nHibernate 生成 SQL 查询。我们正在做分页。如果我们按 100 页,nHibernate 生成连续 SQL 查询的方式是:

  • TOP 100 // 给我们前 100 个
  • TOP 200 // 给我们这个块的第二个 100
  • 等等

以上,在 nHibernate 级别没有 ORDER BY / 排序,最终结果是某些行永远不会出现在 nHibernate 中。我们推测这是由于 SQL 的任意排序造成的,因此行在页面内“移动”(从而从我们的应用程序代码中“隐藏”)。

如果我们单次执行 nHibrate 查询(返回所有行),我们会看到所有数据。(下面的这个查询是由 nhibernate 生成的。)

添加 order by 子句(又名 nHibernate 排序)有帮助吗?

SELECT top 33 
 ... <field list> 
FROM 
  salesOrder this_ left outer join [Item] Item2_ on this_.ItemId=Item2_.ItemId 
WHERE this_.AccountId = @p0 
and this_.ModifiedAt > @p1 
and this_.ModifiedAt <= @p2
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server paging nhibernate

4
推荐指数
1
解决办法
2303
查看次数

标准版ONLINE的索引维护操作:表是读写还是只读?

据我们了解,与 SQL Server 2008 及更高版本相关:

ALTER INDEX ... REORGANIZE
Run Code Online (Sandbox Code Playgroud)

在所有版本的 SQL Server 中进行在线操作。

ALTER INDEX ... REBUILD
Run Code Online (Sandbox Code Playgroud)

是 BLOCKING 操作,除非你有 SQL Server 企业版......(即使是企业版,在重建聚集索引时也会阻塞)

如果以上都正确,问题是:

ALTER INDEX ... REORGANIZE操作过程中,该表是否可用于读写,或者写入是否被阻塞?

sql-server

3
推荐指数
1
解决办法
2480
查看次数

SQL Server:我可以从 SQL Server 2014 --&gt; 2016 登录吗?

SQL Server 2014 和 2016,都是标准版。

我们正在迁移到新的 SQL Server。我们通常通过日志传送来做到这一点(这让我们有一个小的转换窗口,因为我们只需要恢复最终日志,从恢复中取出新数据库,修改连接字符串,我们就完成了......)

我们希望在此过程中迁移到 SQL 2016。

可以从 2014 年到 2016 年登船吗?

sql-server sql-server-2016

3
推荐指数
1
解决办法
684
查看次数