标签: sql-server

SQL Server 实例仅使用几百 MB。远低于最低服务器内存设置

资源监视器的屏幕抓取

我有两个 SQL Server 2012 实例在具有 32GB RAM 的服务器上运行,并且很少运行其他实例。

一个实例表现正常。它的工作集内存运行接近其提交,这也接近 SQL Server 中的最大服务器内存设置。

另一个实例(在图像中突出显示)的行为不符合我的预期。无论我如何配置它的最小和最大内存设置,即使服务器上有足够的可用 RAM,我也无法获得超过几百 MB 的工作集内存。

这对其性能产生了非常不利的影响,尤其是在重负载下。数据库使用得很好,当这个实例正常工作时*它会很快填满20GB的最大服务器内存设置。

服务器已重新启动。实例已重新启动。我尝试更改为各种最小/最大设置并停止运行良好的实例 - 只是为了检查它是否以某种方式干扰。问题仍然存在,而一个实例似乎对最小和最大内存设置正常响应,而另一个则没有。

* 我不知道发生了什么变化,否则我会把它改回来。

  • 操作系统和 SQL Server 都是 64 位的。
  • sys.configurations的内容在两个实例上是相同的。
  • “低”服务器上的数据库总共有 10 多 GB。
  • 我相信服务器上的负载足够大,它应该使用更多内存。在过去,它过去常常很快地填充其内存分配。
  • 我已经对应该将数据提取到内存中的表进行了一些大型查询。
  • 这只是一个数据库服务器,它上面没有运行任何其他东西,而且自从出现这个问题以来,它的运行速度明显变慢。
  • sys.dm_os_sys_memoryperfmon与资源监视器一致。
  • 目标服务器内存 (KB) = 10240008;总服务器内存 (KB) = 5237744

sql-server memory configuration sql-server-2012

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

使用 Oracle SQL Developer 连接到 SQL Server

我正在使用 oracle sql developer 来管理我的 oracle 数据库。我最近添加了第三方数据库 jdbc 驱动程序,以便能够连接到我的新 MySQL 和 SQL Server 安装。我需要有关 SQL Server 连接的正确设置的帮助,即用户名、主机名、端口,包括格式

oracle sql-server oracle-11g-r2 oracle-sql-developer

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

ALTER TABLE ... 从常规表切换到分区表失败

下面的代码执行以下操作:

  1. 在 C:\TEMP 中创建数据库 play_partition
  2. 创建两个相同的分区表 play_table 和 archive_play_table
  3. 将 play_table 分区 1 切换到 archive_play_table 分区 1
  4. 在与 play_table 分区 2 相同的文件组上创建一个与 play_table 具有相同结构的新未分区表 temp_table
  5. 将 play_table_partition 2 切换到 temp_table
  6. 尝试将 temp_table 切换回 play_table 分区 2 并失败

    消息 4982,级别 16,状态 1,第 64 行 ALTER TABLE SWITCH 语句失败。检查源表“play_partition.dbo.temp_table”的约束允许目标表“play_partition.dbo.play_table”上的分区 2 定义的范围不允许的值。

为什么会失败?

我使用的是 SQL Server 2014(企业版试用版)。

问候,

科林戴利

http://www.colindaley.com/translator

/* Playing with partitioned tables */

USE master;
GO

DROP DATABASE play_partition;
GO

CREATE DATABASE play_partition
    ON PRIMARY(
        NAME = play_partition
        , FILENAME …
Run Code Online (Sandbox Code Playgroud)

sql-server partitioning sql-server-2014

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

在 XML 列中编辑单个条目的最简单方法?

据我了解,MS SQL Server Management Studio 不允许通过 GUI 直接编辑/替换 XML 列中的条目(复制/粘贴不起作用等)。

替换 XML 列中单个条目的最简单选项是什么?对于 XML 列值,我是否必须使用与 UPDATE/REPLACE 不同的东西?

xml sql-server sql-server-2012

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

用于识别数据库的 PowerShell 脚本

我有足够的 PowerShell 技能来开始工作,但没有使用 SQL 服务器。有人可以指出我如何使用 PowerShell 获取有关远程 SQL 服务器的信息以识别其上运行的数据库的正确方向。

谢谢你的帮助。

编辑 - 使用 SMO 代码

我试图将这段代码放在一起,但得到错误:找不到类型 [Microsoft.SqlServer.Management.Smo.Server] 确保加载了包含此类型的程序集

[Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo")
$sqlServer = New-Object("Microsoft.SqlServer.Management.Smo.Server") "MSQLULTDBS04"
foreach($sqlDatabase in $sqlServer.databases) {$sqlDatabase.name}
Run Code Online (Sandbox Code Playgroud)

database-design sql-server powershell

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

基于客户端 TCP 端口的 SQL Server 跟踪

我有一个 Windows 终端服务器,其中有许多不同的用户通过 RDP 登录以运行应用程序。该应用程序为每个用户建立一个或多个到 SQL Server 2008 R2 实例的连接。所有用户使用相同的 SQL 登录访问相同的数据库。我希望能够跟踪特定用户的 SQL 会话,但我还没有找到确定哪个 SQL 会话属于哪个用户的方法。但是,我能够确定应用程序的每个实例正在使用的源 TCP 端口。

有没有办法根据客户端的 TCP 端口跟踪 SQL 会话?

security sql-server sql-server-2008-r2 trace

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

T-SQL - 选项 (FAST x) 和跟踪标志 8722

我已经搜索了很长时间,仍然没有找到我的问题的答案。

我们的 Dynamics AX 使用查询提示 OPTION (FAST x) 生成查询,这有时会强制使用错误的执行计划。开发人员说它是默认的并且很难改变(必须在所有形式上潜在地修复)。

所以我想找到一种使用跟踪标志覆盖这些提示的方法。我发现了可爱的跟踪标志 8722,它声称可以让 SQL Server 忽略一些查询提示,尤其是 OPTION 子句中的提示。

但是,这在我的情况下不起作用。我也尝试启用跟踪标志 8602(禁用索引提示),但我的查询仍在使用 FAST x 提示运行(它比我实际删除 OPTION 子句时慢得多)。

我也尝试清除计划缓存,但无济于事。

有任何想法吗?我错过了什么吗?

PS 我启用了全局跟踪标志,这是 SQL Server 2012 开发人员版

performance sql-server sql-server-2012

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

程序集“system.web,版本=4.0.0.0,文化=中性,publickeytoken=b03f5f7f11d50a3a。” 在 SQL 目录中找不到

我正在尝试使用 System.Web 的 HTTPUtility.UrlDecode 方法部署 SQL CLR 函数,但我无法部署它。收到错误:

.Net SqlClient 数据提供程序:消息 6503,级别 16,状态 12,第 1 行程序集“system.web,版本=4.0.0.0,文化=中性,publickeytoken=b03f5f7f11d50a3a。” 在 SQL 目录中找不到。

功能(作为SSDT项目的一部分):

using System;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;

public partial class UserDefinedFunctions
{
    [Microsoft.SqlServer.Server.SqlFunction(IsDeterministic = true)]
    public static SqlString udf_UrlDecode(SqlString encodedXML)
    {
        string decodedXML;

        decodedXML = HttpUtility.UrlDecode(encodedXML.ToString());

        return new SqlString(decodedXML);
    }
}
Run Code Online (Sandbox Code Playgroud)

它与这个线程有关。我是带有 VS2012 SSDT 和数据库项目的 SQL Server 2014。已尝试使用其他目标框架,例如 3、3.5、4 和 4.5。

我也尝试过使用 System.Web 创建程序集,但随后必须添加其他程序集,例如 Microsoft.Build、System.Xaml,直到它们也失败。我看到 System.Web 不在支持的库列表中,所以有什么想法吗?

sql-server sql-clr sql-server-2014

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

在没有故障转移群集的环境中 Windows 更新后 AlwaysOn 可用性组错误

今天早上我们的 SQL Server 服务宕机,导致我们的一些网站宕机。当我去检查 Windows 事件查看器时,我看到以下错误:

数据库“master”的脚本级别升级失败,因为升级步骤“SSIS_hotfix_install.sql”遇到错误 942,状态 4,严重性 25

无法恢复主数据库。SQL Server 无法运行。从完整备份恢复主文件、修复它或重建它。有关如何重建 master 数据库的详细信息,请参阅 SQL Server 联机丛书。

我做的第一件事就是在谷歌上搜索错误。我最终找到了一个包含确切问题和修复方法的论坛条目(也在我正在寻求解决方案的博客条目上)。该问题与 AlwaysOn 可用性组有关,修复要求您:

  1. 使用 Trace Flag 902 启动 SQL Server 服务:

    网络启动 MSSQL$InstanceName /T902

  2. 打开 SQL Server Management Studio,转到可用性组并从可用性数据库中删除 SSISDB

  3. 打开新查询,执行 SSIS_hotfix_install.sql 脚本,该脚本可以在 \Program Files\Microsoft SQL Server\MSSQL11.MSSQL$InstanceName\MSSQL 下的安装文件夹中找到

  4. 停止 SQL Server 服务:

    网络停止 MSSQL$InstanceName

  5. 从 SQL Server 配置管理器启动 SQL Server 服务

  6. 将 SSISDB 添加回可用性组

但是,我无法通过第 2 步,因为当我尝试展开“AlwaysOn High Availability”文件夹时出现以下错误:

在您可以在此实例上创建可用性组之前,必须为服务器实例 'InstanceName' 启用“AlwaysOn 功能”。

然后我按照说明转到“SQL Server 配置管理器”和“AlwaysOn High Availability”选项卡以打开该功能。这次该功能变灰了,并且有一条消息说该计算机节点不在故障转移集群中。 …

sql-server upgrade sql-server-2012 errors

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

为什么 SQL 使用相同的 XML 查询结构进行索引扫描和查找?

我已经设置了一个测试来对 SQL 服务器中的 xml 性能进行基准测试。

测试设置

  • 一百万行数据
  • XML 定义的具有主键的列
  • 一个主要的 XML 索引
  • 路径上的辅助 XML 索引
  • XML 数据在格式上相似,但在每个文档中都有可变的标签名称

表和索引设计

CREATE TABLE [dbo].[xml_Test]
(
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [GUID] [varchar](50) NULL,
    [JSON_Data] [varchar](max) NULL,
    [XML_Data] [xml] NULL,
    CONSTRAINT [PK_xml_Test] PRIMARY KEY CLUSTERED ([ID] ASC)
);

ALTER TABLE [dbo].[xml_Test] ADD  CONSTRAINT [DF_xml_Test_GUID]  DEFAULT (newid()) FOR [GUID];
ALTER TABLE [dbo].[xml_Test] ADD  CONSTRAINT [PK_xml_Test] PRIMARY KEY CLUSTERED ([ID] ASC);

CREATE PRIMARY XML INDEX [PK_xml] ON [dbo].[xml_Test]
(   [XML_Data]);

CREATE XML INDEX [IX_xml_Path] ON [dbo].[xml_Test] …
Run Code Online (Sandbox Code Playgroud)

performance xml sql-server t-sql index-tuning

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