小编Aar*_*and的帖子

当工作类别中的任何工作失败时发出警报

是否可以在 SQL Server 2008 中设置警报,以便在特定类别中的作业失败时发送电子邮件?

我想知道,因为我想在 SSRS 订阅失败时设置电子邮件 - 所有这些订阅都是Report Server类别中的作业。

编辑- 事实证明,当 SSRS 订阅失败时,作业本身不会失败,因此我的问题不适用于 SSRS 订阅监视使用。但是我仍然想知道我们在我们的环境中运行的其他作业

sql-server-2008 monitoring sql-server ssrs sql-server-agent

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

如何平衡 SQL Server 内存与 SQL Server Analysis Services 内存

我们有许多具有相同配置的系统

  • 一台服务器(虚拟或物理)
  • 运行 SQL Server (SQL) 和 SQL Server Analysis Server (AS)
  • 多核
  • 16GB 内存

每天晚上 SQL Server 会做大约 2-3 小时的处理,然后是 2-3 小时的 AS 处理。然后全天只查询 AS。

假设这是一个专用服务器,没有其他应用程序值得关注,并且两组处理是完全同步的 - 没有重叠总是一个接一个 - 我怎样才能最好地设置 SQL 和 AS 服务器内存限制。

询问的原因是,如果我不为 SQL 设置限制,它将抢占它所能获取的所有内存。但是 - 我的理解是,如果出现以下情况,SQL 将很乐意放弃此内存:

  • 它没有使用它并且

  • 另一个服务/程序请求它。

所以从逻辑的角度来看,我相信允许 SQL 根据需要使用尽可能多的东西,但我不太确定 AS' TotalMemoryLimit。我不确定 AS 是否会放弃它的记忆。事实上,阅读更多让我相信让它承担一切是错误的。

这是否意味着我实际上需要为两者设置限制?我对最佳实践应该是什么以及考虑到流程不重叠我们需要衡量什么感到困惑。

希望这是有道理的。

sql-server ssas memory

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

从不同版本/版本的备份文件恢复数据库

我了解到,出于向后兼容性的原因,只要您从旧版本恢复到新版本,就可以在 SQL Server 中恢复数据库。

有谁知道您是否可以从不同版本的 SQL Server 的 *.bak 文件还原数据库?我们正在通过 FTP 移动一个非常大的数据库,这需要几天时间,所以我们宁愿只做一次。如果在我们通过 FTP 传输数据库时没有人响应,我们显然会尝试一下,通过测试看看它是否有效,然后回答我们自己的问题。

以下是获取 SQL Server 版本详细信息的查询。该productversion格式为{major revision}.{minor revision}.{release revision}.{build number}。在我的情况下,源和目标{release revision}的值为。所以看起来没问题。然而,情况不同。55005512edition

询问:

SELECT 
  SERVERPROPERTY('productversion'), 
  SERVERPROPERTY('productlevel'), 
  SERVERPROPERTY('edition')
Run Code Online (Sandbox Code Playgroud)

源数据库:

10.0.5500.0
SP3
Developer Edition (64-bit)
Run Code Online (Sandbox Code Playgroud)

目标数据库:

10.0.5512.0
SP3
Enterprise Edition (64-bit)
Run Code Online (Sandbox Code Playgroud)

sql-server compatibility-level

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

某些用户的查询速度很慢

我有几个从 C# .NET web 应用程序调用的查询,它们对我来说总是很快(我是 SQL Server 的本地管理员),但对于一组用户(具有所需权限的域组),查询速度非常慢它在应用程序中超时的点。

什么会导致完全相同的查询对不同的用户以不同的方式运行?

更多信息:

  • 查询是 C# 代码中的内联 SQL,而不是存储过程
  • 该应用程序使用域身份验证,用户和我自己都通过该应用程序运行查询
  • 似乎这个问题是不同的计划,一个被缓存了,所以这就是为什么它对不同的用户是不同的。某些事情正在影响缓存,因为现在通过应用程序查询对我来说很慢,而在 SQL Server Management Studio 中查询速度很快。

performance sql-server-2008 sql-server t-sql

11
推荐指数
2
解决办法
6589
查看次数

SQL Server 是如何生成加起来达到 6,000% 的查询执行计划的?

奇怪的执行计划

今天我在 The Heap 上,正在查看我认为可以改进的查询计划。然而,它创造了一些东西,动摇了我对 SQL Server 查询优化器的信念。如果甚至不能计数到 100%,我还可以信任它吗?

表的特点:

  • 聚集在非标识列上
  • 12 个索引,其中之一是相关date_entered
  • 60,000 条记录
  • 26列不同类型和长度
  • PAGE 压缩表

有没有人以前见过这个,是什么导致计划看起来如此扭曲?


以下来自 SQL Sentry Plan Explorer

SQL Sentry 计划资源管理器 - 图像 顶级运营

sql-server optimization ssms execution-plan sql-server-2012

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

自动小数舍入问题

问题比较简单。我需要计算 3 列,其中中间结果是大数,并且我在早期遇到问题,SQL Server 基本上四舍五入,无论是否进行任何强制转换/转换。

例如,让我们做一个简单的除法 1234/1233。计算器将产生 1,00081103000811。但是当我在 SQL Server 上执行此操作时,我们得到以下信息:

-- Result: rounded at 1.000811000... with trailing zeroes up until the 37 precision
SELECT CAST(CAST(1234 AS DEC(38,34))/CAST(1233 AS DEC(38,34)) AS DEC(38,37))

-- Result: rounded at 1.000811
SELECT CONVERT(DECIMAL(38,32), 1234)/CONVERT(DECIMAL(38,32),1233)

-- Correct result at 1,00081103000811
-- But this requires the zeroes to be put in manually when you don't
-- even know the precision of the end result
SELECT 1234.0/1233.00000000000000
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种自动舍入?当您无法确定一个数字(int 或 dec 部分)有多大时,计算超长十进制值的最佳方法是什么,因为该表可以包含各种不同的值?

谢谢!

sql-server-2008 sql-server decimal

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

获取分隔字符串中某个值的第 2 次或第 3 次出现

我有下表:

==========================================================
|  Name_Level_Class_Section   |   Phone Num              |
==========================================================
|  Jacky_1_B2_23              |  1122554455              |
|  Johnhy_1_B2_24             |  1122554455              |
|  Peter_2_A5_3               |  1122554455              |
==========================================================
Run Code Online (Sandbox Code Playgroud)

我正在考虑将我的 SQL 语句简化如下:

select 
    *, 
    substring(Name_Level_Class_Section, 
              CHARINDEX('_',Name_Level_Class_Section,
              (CHARINDEX('_', Name_Level_Class_Section) + 1)) + 1, 
      CHARINDEX('_',Name_Level_Class_Section,
     (CHARINDEX('_',Name_Level_Class_Section,
     (CHARINDEX('_',Name_Level_Class_Section)+1))+1))-    
      CHARINDEX('_',Name_Level_Class_Section,
     (CHARINDEX('_',Name_Level_Class_Section)+1))) as CLA 
from 
    Bookings 
order by 
    CLA asc, Name_Level_Class_Section asc
Run Code Online (Sandbox Code Playgroud)

这样当我执行 SQL 时,它会给我以下结果:

==========================================================
|  Name_Level_Class_Section   |  Phone Num     |  CLA    |
==========================================================
|  Jacky_1_B2_23              |  1122554455    |  B2     |
|  Johnhy_1_B2_24             |  1122554455    |  B2     | …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server

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

有没有办法找出谁更改了登录密码?

我试图找出谁更改了 SQL Server 2008 R2 中的登录密码。

我已经检查了默认跟踪 - 它没有记录该事件。默认跟踪将包括这些与安全相关的事件:

/*
    Audit Add DB user event
    Audit Add login to server role event
    Audit Add Member to DB role event
    Audit Add Role event
    Audit Add login event
    Audit Backup/Restore event
    Audit Change Database owner
    Audit DBCC event
    Audit Database Scope GDR event (Grant, Deny, Revoke)
    Audit Login Change Property event
    Audit Login Failed
    Audit Login GDR event
    Audit Schema Object GDR event
    Audit Schema Object Take Ownership
    Audit Server Starts …
Run Code Online (Sandbox Code Playgroud)

security permissions sql-server-2008-r2 logins

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

循环遍历值一次剥离 1 个字符

我想遍历值并一次从值中去除 1 个字符并显示结果。

因此,如果我有一个带有值的表:

ID
___
34679
13390
89906
Run Code Online (Sandbox Code Playgroud)

我希望结果看起来像这样

Id
----
4679
679
79
9
3390
390
90
0
9906
906
06
6
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2012

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

index_id < 256000 有什么意义?

在我读到的某个教程中,作者正在sys.indexes根据谓词进行过滤index_id < 256000。这有什么作用?

index sql-server metadata catalog-views

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