标签: windows-server

分配更多 CPU 和 RAM 后降低 SQL Server 性能

我们在虚拟 Windows 2008 R2 服务器上运行 SQL Server 2008 R2 (10.50.1600)。在将 CPU 从 1 核升级到 4 核并将 RAM 从 4 GB 升级到 10 GB 后,我们注意到性能更差。

我看到的一些观察:

  1. 运行时间 <5 秒的查询现在需要 >200 秒。
  2. CPU 被锁定在 100,而 sqlservr.exe 是罪魁祸首。
  3. 一个有 460 万行的表上的 select count(*) 花费了 90 多秒。
  4. 服务器上运行的进程没有改变。唯一的变化是增加了 cpu 和 ram。
  5. 其他 sql 服务器有一个静态分页文件,该服务器设置为自行管理它。

有没有人遇到过这个问题?

根据 sp_BlitzErik,我跑了

EXEC dbo.sp_BlitzFirst @SinceStartup = 1;
Run Code Online (Sandbox Code Playgroud)

给我这些结果。

等待统计

performance sql-server sql-server-2008-r2 windows-server

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

由于潜在的数据丢失,无法转换该值

首先让我澄清一下,这不是一个重复的问题,也不是一个潜在的重复问题。我已经尝试对 StackOverflow 和 DBA Stack Exchange 上已经存在的这个问题的每一个变体实施每一个答案,但没有任何运气。

过去两天我一直在努力解决这个问题(每天大约工作 7 小时),即使在谷歌搜索这个问题之后,似乎没有其他人遇到我的问题的完全相同的变体。

我想做什么?

在 SSIS 中,我试图从 CSV 文件中读取数据,并将其中的行插入到 OLE DB 数据库中。为此,我进行了有史以来最简单的设置,如下所示。

  1. Flat File Source - 读取 CSV 行。
  2. Derived Column - 目前什么都不做(它只是为了试验)。
  3. Data Conversion - 目前什么都不做(它只是为了试验)。
  4. OLE DB Destination - 将行存储在数据库中。

当我尝试运行它时,它停止在我的OLE DB 目标处执行并显示以下错误消息。

输入“OLE DB 目标输入”(51) 上的输入列“数量”(187) 出错。返回的列状态为:“由于潜在的数据丢失,无法转换该值。”。

失败 ( Amount)的列当前的类型是DT_STR。这似乎是我现在最相信的类型。

我尝试了什么?

  • 我已尝试在Flat File Connection失败的列上使用“建议类型”功能。这使得它推荐Single byte signed int数据类型。
    • 停在我的平面文件源
    • 错误数据转换失败。列“金额”的数据转换返回了状态值 2 和状态文本“由于潜在的数据丢失,无法转换该值。”。
  • 我试过使用 Derived Column …

sql-server-2008 sql-server ssis windows-server

17
推荐指数
2
解决办法
12万
查看次数

我正在使用 SQL Server 代理来安排非数据库任务 - 这是一个坏主意吗?

由于我是一名 DBA(并且在许多情况下,事实上的系统管理员),SQL Server 安装在我必须定期使用的几乎每台服务器上。我最近意识到我在几乎所有情况下都使用 SQL 代理作为作业调度程序,而不是本机 Windows 任务调度程序。

从我的角度来看,SQL Agent 比原生的 Windows 任务计划程序有很多优势:

  • 远程(从我的工作站)启动/停止/监控任务
  • 共享计划(而不是每个任务单独执行)
  • 多个步骤和控制流程
  • 不同类型的任务
  • 失败/完成警报
  • 可以配置为不同的用户
  • (适度)描述性错误消息,而不仅仅是错误代码

但是,我无法逃避这是一种不好的做法 - SQL 代理应该只保留用于与数据库相关的任务,并且我应该让操作系统级别的任务在 Windows 任务计划程序中运行,尽管我不喜欢它的可用性。

这样依赖SQL Agent可以吗?如果没有,我是否应该考虑使用第三方 Windows 任务调度程序来获得我正在寻找的某些功能?

sql-server sql-server-agent windows-server scheduled-tasks

13
推荐指数
2
解决办法
3911
查看次数

我需要为什么我们不应该在域控制器上安装 SQL 服务器的原因

我是一家小公司的系统管理员。现在我们考虑为公司推出 Windows Server 2008 R2。我们计划实施 Active Directory。我们还想将 RDMS 从 SQL Server 2000 升级到 SQL Server 2014。

由于我们组织的规模,我们只能购买一台服务器,因此我们计划在同一台机器上同时实施 AD 和 SQL Server 2014。但是,Microsoft 建议不要在域控制器上安装 SQL Server 2014。

我查了原因,但我不明白是什么问题,所以如果有人在下面回答我的问题,那真的很有帮助。

  1. 您不能在本地服务帐户下的域控制器上运行 SQL Server 服务。?如果我们在域用户帐户下的域控制器上运行 SQL Server,会发生什么?
  2. 在计算机上安装 SQL Server 后,您无法将计算机从域成员更改为域控制器。在将主机更改为域控制器之前,您必须卸载 SQL Server。?我们计划在安装 SQL Server 2014 之前将我们的服务器升级为域控制器,并且不打算取消升级为成员服务器,因为它是我们唯一的服务器。我们的计划错了吗?
  3. 在计算机上安装 SQL Server 后,您无法将计算机从域控制器更改为域成员。在将主机更改为域成员之前,您必须卸载 SQL Server。?我们不打算取消升级为成员服务器,因为它是我们唯一的服务器。我们的计划错了吗?
  4. 在群集节点是域控制器的情况下,不支持 SQL Server 故障转移群集实例。?我们不打算安装failover cluster,所以我们认为这不是问题。我们错了吗?
  5. SQL Server 安装程序无法在只读域控制器上创建安全组或设置 SQL Server 服务帐户。在这种情况下,安装程序将失败。?因为我们只有一台服务器,所以它永远不会是一个只读的域控制器,所以我们认为这不是问题。我们错了吗?

实际上,我想如果我们清除(1),我们就可以在我们的域控制器上安装 SQL Server 2014。

感谢您阅读所有句子。我希望有人给我们答案。

sql-server windows-server active-directory

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

将 SQL Server 移动到不同的域

将托管 SQL Server 2008 R2 的 Windows Server 计算机移动到另一个域时,最佳做法/重要步骤是什么?在加入新域之前和之后,SQL Server 肯定/可能需要执行哪些步骤?

sql-server configuration windows-server

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

SQL 代理 - PowerShell 步骤“语法错误”

我在未运行的 SQL 代理作业步骤中设置了以下代码。收到的消息很简单:

无法开始执行第 1 步(原因:第(46)行:语法错误)。步骤失败。

工作的持续时间是: 00:00:00

此脚本的第 46 行是here-string


    ,@DriveLetter = '$($c.DriveLetter)'
Run Code Online (Sandbox Code Playgroud)

此脚本在 SQL Server 代理之外完美运行。

服务器名称表:


CREATE TABLE ServerTable (
ServerName varchar(50)
)
Run Code Online (Sandbox Code Playgroud)

磁盘空间表类似于:


CREATE TABLE DiskSpace (
ID int IDENTITY(1,1),
ServerName varchar(50),
DriveLetter varchar(2),
DiskSpaceCapacityGB decimal(12,5),
DiskSpaceFreeGB decimal(12,5)
)
Run Code Online (Sandbox Code Playgroud)

PowerShell 脚本:


This command is to allow SQL Agent job to show failure in event PowerShell script errors
Default behavior in SQL Agent for PowerShell steps it 'Continue'
$erroractionpreference = "Stop"

$sqlInstance = 'server1' $sqlDatabase …

Run Code Online (Sandbox Code Playgroud)

powershell sql-server-2012 windows-server

11
推荐指数
1
解决办法
7367
查看次数

SQL Server 累积更新 - 在 Windows 更新中不可见

我刚刚在 WS2008R2/SQL2012 实例上安装了所有可能的 Windows 更新。当我跑

SELECT @@VERSION

我得到

Microsoft SQL Server 2012 - 11.0.5058.0 (X64) 
    May 14 2014 18:34:29 
    Copyright (c) Microsoft Corporation
    Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor)
Run Code Online (Sandbox Code Playgroud)

根据

http://sqlserverbuilds.blogspot.com/

和 Microsoft 网站,有 4 个可用于 SQL Server 2012 SP2 的累积更新,最新版本是 11.00.9000。

为什么 Windows 更新也没有获得累积更新?我应该手动下载并安装它们吗?

sql-server sql-server-2012 windows-server

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

更改 MySQL 数据库服务器上的数据目录

我已经在 Windows Server 2012 R2 上安装了 mysql server 5.6.24。

我导入了转储文件,数据文件存储在 C:\ProgramData\MySQL\MySQL Server 5.6\data

我想更改目录,如D:\ProgramData\Data.

你能帮我吗,有人吗?

mysql windows windows-server mysql-5.6 datadir

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

增加了服务器的内存,但我需要更改页面文件大小吗?

我在 Windows Server 2012 R2 上运行 SQL Server 2017,并将内存从 256 GB 增加到 512 GB。我注意到虚拟内存的以下配置:

  • C: [操作系统] = 2 GB
  • G:[数据] = 无
  • H:[日志] = 无
  • T:[温度] = 无

有很多关于将大小设置为已安装内存大小的 1.5 或 2 倍的建议。我读得对还是我误读了这些文章并且它们适用于其他东西?

也有文章建议不要担心虚拟内存,因为SQL应该只使用RAM而不是虚拟内存,而操作系统只需要2GB的虚拟内存?

sql-server memory windows-server sql-server-2017

10
推荐指数
2
解决办法
3908
查看次数

系统重启后 SQL Server 服务未自动启动

我有一个每周重新启动的 SQL Server 系统(安装 Windows 更新后)。

在过去的三周里,我看到 SQL Server 服务在服务器恢复时没有启动(配置管理器显示该服务已停止),系统事件日志显示以下错误:

事件 ID 7000

由于以下错误,SQL Server (MSSQLSERVER) 服务无法启动:该服务没有及时响应启动或控制请求。

事件 ID 7001

SQL Server 代理 (MSSQLSERVER) 服务依赖于由于以下错误而无法启动的 SQL Server (MSSQLSERVER) 服务:该服务没有及时响应启动或控制请求。

事件 7009

由于以下错误,SQL Server (MSSQLSERVER) 服务无法启动:该服务没有及时响应启动或控制请求。

但是,我可以手动启动该服务并且它可以正常启动。

该服务设置为自动启动。

不幸的是,SQL Server 错误日志也不包含任何线索。

sql-server windows-server sql-server-2014

8
推荐指数
1
解决办法
7016
查看次数