标签: sql-server-2012

SQL Server 不应该支持 RANGE 吗?

作为开发网站并会做一些 SQL Server 的人,SQL Server 应该支持一个简单的子句,表明结果应该只包含特定范围的行,这对我来说似乎是毫无疑问的。例如,第 30 行到第 39 行。

就目前而言,当他们的主要关注点不是 SQL 时,在 SQL Server 中实现分页实际上有点超出了许多 Web 开发人员的能力。

此外,它将大大简化由于连接和其他条件而可能已经很复杂的查询。

最重要的是,我认为随着时间的推移,这样的条款可能更有可能在内部得到优化,因为逻辑将完全在 Microsoft 的控制之下。

前段时间我在另一个论坛上提出了这个问题,许多答复似乎表明这不是可取的。

鉴于任何现有的分页技术都将保持不变,有什么可能的原因不添加这样的子句?对于像我这样的人来说会好得多。

任何人都可以说微软没有这样做的充分理由吗?

sql-server sql-server-2012

9
推荐指数
1
解决办法
413
查看次数

SQL Server 2012 性能对比 SQL Server 2008 R2

有没有人有任何数据库引擎性能基准测试的链接,或者任何关于 SQL Server 2012 性能改进的轶事报告。我们只使用数据库引擎,而不是报告服务或 BI。从升级的角度来看有什么建议/问题吗?

sql-server-2008-r2 sql-server-2012

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

如何在 SSMS2012 中检查连接字符串?

我连接到数据库。我使用 Management Studio 2012 Express 的 db。我可以通过单击 Management Studio 中的某些内容来检查连接字符串吗?

sql-server ssms sql-server-2012

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

SQL Server 2012 标准版 - 多实例和内存利用率

如果我们在一台具有 192 GB RAM 的服务器上有多个 SQL Server 2012 标准版实例(具有 64 GB 内存限制),两个实例是否只能访问前 64 GB 内存,还是可以访问不同的内存?部分内存,以便他们每个人都可以拥有自己的 64 GB“块”。

如果两个节点都故障转移到单个节点,则这对于 Active/Active 集群是考虑因素。

sql-server clustering sql-server-2012

9
推荐指数
2
解决办法
2809
查看次数

case 与 isnull 与合并

我只是在阅读 SQL Server 2012 考试的文档,我看到了以下几点:

case 与 isnull 与合并

现在,我知道如何使用每一种,但我不知道何时使用每一种。请一些机构澄清。谢谢。

附言。请问我们可以有一个考试问题的标签吗?

sql-server sql-server-2012

9
推荐指数
1
解决办法
6057
查看次数

如何修复 SQL Server 程序集优化错误和内存耗尽?

mscorsvw自从我安装了 SQL Server 2012 Service Pack 1 以来,.NET 运行时优化服务 ( ) 一直在消耗我工作站的所有内存。

在耗尽所有可用内存之前,它会消耗大约 1.6 GB 的内存:

.NET 运行时优化服务消耗了我工作站上的所有可用内存。

我可以终止该进程,但是当我重新启动计算机或等待足够长的时间时它会再次发生。

Techdows建议使用 .NET Native Image Generator ( ngen) 来解决该问题。

我打开命令提示符并运行如下命令:

cd C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319.1
ngen executeQueuedItems
Run Code Online (Sandbox Code Playgroud)

的内存消耗mscorsvw下降到大约 20-30 MB,并ngen消耗了所有剩余的内存。

ngen在我终止进程之前只生成错误消息。输出的前几行如下所示:

Microsoft (R) CLR Native Image Generator - Version 4.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.
Failed to load dependency Microsoft.DataWarehouse of assembly
Microsoft.SqlServer.MaintenancePlanTasks, Version=11.0.0.0, Culture=neutral,
PublicKeyToken=89845dcd8080cc91 because of the following error : The system
cannot find the …
Run Code Online (Sandbox Code Playgroud)

sql-server-2012

9
推荐指数
1
解决办法
5592
查看次数

将行从一个表移动到另一个表

作为存档过程的一部分,我正在将记录从一个数据库移动到另一个数据库。我想将行复制到目标表,然后从源表中删除相同的行。

我的问题是,在删除行之前检查第一次插入是否成功的最有效方法是什么。

我的想法是这样,但我觉得有更好的方法:

@num_records=select count(ID) from Source_Table where (criteria for eligible rows)

insert * into Destination_Table where (criteria for eligible rows)

if ((select count(ID) from Destination_Table where (criteria) )=@numrecords)

delete * from Source_Table where (criteria)
Run Code Online (Sandbox Code Playgroud)

将它与 RAISERROR 功能结合是否更好/可能?谢谢!

sql-server-2012

9
推荐指数
2
解决办法
3万
查看次数

出于存档目的对数据库进行碎片整理/压缩的最佳方法

我们有一个用于电子邮件归档的 SQL Server 实例(由 3rd 方归档包提供)。每隔一段时间,软件就会滚动到一个新的空数据库。我们过去每季度进行一次,但现在我们希望每月进行一次。每月存档的数据量约为 15 - 20 GB,大部分数据仅驻留在少数表中(通常为 2 - 4 个)。

一旦我们滚动到一个新数据库,旧数据库就会严格按照只读方式使用。我想做的是将它优化成一个漂亮的、紧凑的数据文件,所有的表/索引都是连续的并且具有非常高的填充因子,并且数据文件末尾没有太多的空白空间。此外,我们在这台服务器上使用标准版,但存在所有隐含的限制(否则我已经在使用数据压缩了)。

我能想到的几种可能性:

  1. REBUILD/REORGANIZE 索引、DBCC SHRINKFILE(好吧,这不是一个明智的选择,因为 DBCC SHRINKFILE 会将它接触到的任何东西都分割开来,但为了完整起见,我将其包括在内。)
  2. 创建一个关闭自动统计的新数据库。编写脚本并从源数据库重新创建所有表。使用 bcp 按集群键顺序将数据导出/导入到新数据库中。编写脚本并重新创建所有索引。使用完整扫描重新计算所有统计信息。
  3. 创建一个关闭自动统计的新数据库。编写脚本并从源数据库重新创建所有表。使用 SSIS 或 T-SQL 将数据传输到新数据库。编写脚本并重新创建所有索引。使用完整扫描重新计算所有统计信息。

每种情况下的最后一步都是将数据库设置为只读模式。

这样做还有哪些其他好的/更好的选择?我关心的是以这样一种方式移动数据,以保持高填充因子,并以逻辑上连续的方式。

编辑:

我应该提到大约 75% 的数据似乎存储在图像 (LOB) 列中。

sql-server sql-server-2012

9
推荐指数
1
解决办法
1037
查看次数

TempDB 中的损坏分区如何导致 DBCC CHECKDB 报告没有问题?

我们的其中一台 SQL Server 最近报告了以下错误:

DATE/TIME:  2/25/2013 9:15:14 PM

DESCRIPTION:    No catalog entry found for partition ID 9079262474267394048
     in database 2. The metadata is inconsistent. Run DBCC CHECKDB to check for
     a metadata corruption.
Run Code Online (Sandbox Code Playgroud)

不到 15 分钟后,我连接到服务器并运行:

SELECT name
FROM sys.databases
WHERE database_id = 2;
Run Code Online (Sandbox Code Playgroud)

返回'tempdb'。然后我跑了:

DBCC CHECKDB ('tempdb') WITH NO_INFOMSGS, TABLERESULTS;
Run Code Online (Sandbox Code Playgroud)

没有返回任何结果,表明受影响的数据库没有问题。

数据库中的损坏如何导致上述错误消息DBCC CHECKDB但未报告问题?我假设如果页面校验和计算失败,导致页面被标记为怀疑引用该页面的任何对象将无法删除,但我一定是错的。

一旦页面被标记为“可疑”,如何将其标记为“不可疑”、“已修复”或“重用”,或者DBCC CHECKDB不报告相关页面有任何问题的任何内容?


编辑:2013-02-27 13:24

只是为了好玩,我试图在 TempDB 中重新创建损坏,假设 #temp 表是罪魁祸首。

但是,由于我无法SINGLE_USER在 TempDB 中设置该选项,因此无法用于DBCC WRITEPAGE损坏页面,因此我无法在 TempDB 中强制损坏。

而不是使用DBCC WRITEPAGE …

sql-server sql-server-2012 tempdb dbcc-checkdb

9
推荐指数
3
解决办法
8334
查看次数

Service Broker 终结点处于禁用或停止状态 - AoAG - SQL Server 2012 - 15 分钟间隔

我每 15 分钟在 SQL Server 错误日志中收到此错误消息。我已经在这台服务器上设置了 AOAG。为该实例上的 Blackberry 相关数据库和 MSDB 数据库启用了数据库选项“Service Broker - Broker Enabled”。黑莓支持提到他们不需要启用此功能。我有其他 AOAG 实例,他们没有收到此错误。

请分享您在这方面的智慧。我还没有使用过服务代理,也没有在我的搜索中找到关于堆栈交换的类似帖子。

谢谢

sql-server service-broker sql-server-2012 availability-groups

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