标签: sql-server-2008

引发的警报如何无法通过电子邮件通知操作员?

SQL Server 2008:@msgnum = 75000 and @severity = 16向 SQL 实例添加了一条消息。添加了一个警报,当出现错误号 75000 时会引发该警报。警报已启用,并且也已启用的操作员设置为通过电子邮件通知。警报历史显示警报已触发,但未通知操作员。操作员历史记录显示“最近的通知尝试:(从未通过电子邮件发送)”。

操作员有正确的电子邮件地址。DBMail 设置正确,因为我可以 sp_send_dbmail 从和发送到该电子邮件地址。

我从哪里开始排除故障?

sql-server-2008

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

管理多个 SQL Server 数据库

我公司有很多分支机构,每个分支机构都有一个数据库服务器。有些使用 SQL Server 2005,有些使用 SQL Server 2008。所有这些服务器的架构都相同。

每当我想做添加列等 DDL 时,我要么通过一个接一个地连接到每个服务器,要么通过批处理文件使用 OSQL 运行 DDL 脚本。

是否有内置工具可以在多台服务器上同时执行 DDL?第三方工具怎么样?(最好是免费的)

sql-server-2005 sql-server-2008

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

SQL Studio 2008 R2 中没有维护计划文件夹

客户端在 Windows 2003 R2 32 位服务器上安装了 SQL Server 2008 R2。

在 SQL Studio 2008 R2 的管理下,没有维护计划文件夹。它也不在 Management --> Legacy 之下,因为如果服务器上有遗留模式数据库,就会如此。我确定这是 SQL Server 2008 R2 而不是 Express。我已经检查了版本并验证了工作室启动时的启动画面不是 Express。我以 SQL 帐户 sa 登录,该帐户确实具有 sysadmin 服务器角色。

最后,右键单击 SSMS 中的数据库并导航到“任务”不会显示任何维护计划选项。

显然,我遗漏了一些东西,考虑到我概述的情况,谷歌正在空虚。有任何想法吗?谢谢。

编辑:选择@@version 返回“Microsoft SQL Server 2008 R2 (RTM) - 10.50.1617.0 (Intel X86) Apr 22 2011 11:57:00 版权所有 (c) Microsoft Corporation Express Edition with Advanced Services on Windows NT 5.2 (Build 3790) : 服务包 2)"

sql-server-2008 maintenance

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

连接来自单个表中重复行的值的 SQL 查询

假设我有一个表employees,如下所示:

Name     Sex     Role

Bob      M       Developer
Joe      M       QA
Run Code Online (Sandbox Code Playgroud)

现在,我在这个表中遇到了重复行的问题。我会在某个时候修复它,但这不是问题。我目前需要的是查询这样一个表的东西:

Name     Sex     Role

Bob      M       Developer
Bob      M       Janitor
Joe      M       QA
Joe      M       CEO
Run Code Online (Sandbox Code Playgroud)

并将输出以下行:

Name     Role

Bob      Developer, Janitor
Joe      QA, CEO
Run Code Online (Sandbox Code Playgroud)

对我来说,“角色”将被拆分为单独的列还是具有多个值的单个列,这对我来说并不重要。

如果重要,请使用 SQL Server 2008。

sql-server-2008 sql-server aggregate

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

角色 db_ddladmin 在 SQL Server 2008 上无法正常工作

我想允许某些用户在数据库(表、视图、sp、函数、模式等)上创建/修改对象,并且不想给 db_owner。

我以为我可以使用 db_ddladmin 角色来做到这一点,但不知何故这并不如预期。我得到的错误消息是这样的:

Your are not loggend on as the database owner or system administrator. 
You might not beable to sache changes to tables that you do not own.

Table dbo.MyTable is set to read only, 
user doesn't have enough right on this table.
Run Code Online (Sandbox Code Playgroud)

等等

知道如何实现我的目标吗?

sql-server-2008 security permissions

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

VARCHAR(MAX) 中的空字符串消耗无法恢复的空间

我有一个带有不可为空VARCHAR(MAX)列的表,其中每一行都包含一个空字符串(第三方数据库,因此我无法更改它)。我看到了大量的空间使用,超过 15GB 的 100 万行。

如果我运行以下查询,我会看到 LOB_DATA 的大量 used_pa​​ges,即使该列中没有数据。不包括VARCHAR(MAX)行大小低于 8000 字节。

 SELECT o.name AS table_name,p.index_id, au.type, au.type_desc, au.total_pages, au.used_pages, au.data_pages
 FROM sys.allocation_units AS au
   JOIN sys.partitions AS p ON au.container_id = p.partition_id
   JOIN sys.objects AS o ON p.object_id = o.object_id
 WHERE o.name = 'table
 ORDER BY o.name, p.index_id;

type    type_desc             total_pages   used_pages  data_pages
1   IN_ROW_DATA 23258             23252           23188
2   LOB_DATA              1880733             1880455             0
3   ROW_OVERFLOW_DATA   0             0           0
Run Code Online (Sandbox Code Playgroud)

评论更新:

  • 该表是一个存档表,因此数据不应更改(仅插入)
  • 我在一个单独的数据库(同一个服务器)中有一个相同的表,其中有类似的数据,但没有出现这个问题
  • 重建索引没有帮助
  • large_value_types_out_of_row 为 0
  • DBCC …

sql-server-2008 disk-space

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

在不同的网络上使用 SQL Server

我在 Windows2008R2 上安装了一堆 SQL Server。目前,每个 Windows 服务器都有两个 NIC,每个都连接到不同的网络。换句话说,每个服务器都出现在每个网络上。一个网络允许应用程序访问数据库,另一个网络旨在用于在服务器之间迁移大量数据而不影响应用程序使用的网络。

我有一份工作将大量数据从一个 SQL 服务器拉入另一个。我也希望那份工作能够利用第二个网络,但我很难过。

有没有办法告诉 SQL 在与另一台服务器通信时使用特定的网络设备?

谢谢!

sql-server-2008 sql-server network

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

访问 VM SQL Server 实例时出现问题

这就是我现在正在使用的。我有一个包含 SQL Server 2008 Enterprise 实例的主机操作系统。我在这台主机上运行了一个虚拟机,它有一个 SQL Server 2008 R2 Express 实例。在虚拟机中,我可以连接到 SSMS 中的主机实例。但是在主机操作系统中,我无法访问虚拟机的 Express 实例。

什么可能导致这种情况?主机可以ping通虚拟机,所以我认为不是网络问题。在虚拟机上的 SSCM 中,我已启用相应的网络协议。

还有什么我需要注意的吗?

sql-server-2008 sql-server ssms

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

在分区表上均匀分布数据的最佳方法

我正在使用一个大约有 500MM 记录的数据库。我们目前使用静态分区方法,通过 int 标识符对数据进行分区,例如 < 150MM 在分区 1 上进行,> 150 && < 350 在分区 1 上进行,等等。

有哪些动态分区方案可以更好地在可用分区上均匀分布数据?有没有一种方法可以以最小的维护开销为动态方案添加额外的分区?

sql-server-2008 sql-server

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

使用 DTA 还是评估 DMV?

目前,我遇到了一个生产 SQL Server 数据库,其中有人添加了几乎所有来自 DTA 的缺失索引建议。

表单如何确定索引是必需的还是必要的我已经了解到,存在 DMV 视图,可用于延迟有关实际索引使用情况以及缺失索引的信息。

Jason Srate的脚本仅使用该视图中的当前信息,而当天的乐趣 - 自动自动索引!将这些视图中的一些信息保存到表中。

另一方面,DTA 需要规划何时运行分析器、选择要分析的内容并对运行时的性能产生一些影响。

我的印象是,使用 DTA 作为第一步调优工具只是浪费时间,因为它的结果没有涵盖完整的数据库使用情况,新手很难理解,并且可能导致添加过多的索引,从而对写入性能产生负面影响,而通过 DMV 收集数据几乎不需要准备,几乎涵盖了自上次重启以来数据库的全部使用情况。

我的问题侧重于向管理层提出哪种策略。我想在第一步中专注于评估 DMV 视图,而完全忽略 DTA。

performance sql-server-2008 sql-server index-tuning database-tuning-advisor

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