小编Col*_*art的帖子

SQL Server 2008 R2 DMV 问题

我有一个查询来检索基于来自 dm_exec_query_stats DMV 的总逻辑读取的前 10 个查询。

SELECT TOP 10 
    SUBSTRING(qt.TEXT, (qs.statement_start_offset/2)+1,
    ((CASE qs.statement_end_offset
    WHEN -1 THEN DATALENGTH(qt.TEXT)
    ELSE qs.statement_end_offset
    END - qs.statement_start_offset)/2)+1),
db_name(qt.dbid) as db_name,
qs.execution_count,
qs.total_logical_reads,
qs.total_worker_time,
qs.total_elapsed_time/1000000 total_elapsed_time_in_S,
SUBSTRING(CONVERT(varchar(19),qs.last_execution_time),1,19)
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) qp
ORDER BY qs.total_logical_reads DESC
Run Code Online (Sandbox Code Playgroud)

查询返回所有请求的信息,除了查询来自或指向的数据库的名称。无论我使用 dm_exec_sql_text 还是 dm_exec_query_plan 结果都是一样的。

db_name(qt.dbid) 作为 db_name dm_exec_sql_text

或者

db_name(qp.dbid) 作为 db_name dm_exec_query_plan

两者都返回 NULL 或 tempdb 作为数据库名称。

选择 Reports -> Performance Top Queries by Average IO 时会出现同样的问题。

在此处输入图片说明

数据库名称为空。

但是,如果我将查询计划添加到查询中,然后在 SSMS 中打开查询计划,我可以通过将鼠标悬停在各种索引查找、扫描或 RID …

sql-server sql-server-2008-r2 dmv

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

错误 18456 错误严重性 14 状态 5 SQL Server 2012 SCCM2012 SP1

我们有一个 SCCM 2012 SP1 运行良好的主站点。然后我在另一台服务器上为 SCCM 安装了 CAS。先决条件要求我更改现有服务器上的排序规则。我这样做并同时运行了重建数据库命令。该站点的 SCCM 数据库以及报告数据库和临时报告数据库都已删除。我不得不将一些用户重新添加到实例中,并与重新附加的数据库(已删除的数据库)结合。我现在收到 SQL Server 错误,如下所示:

错误:18456,严重性:14,状态:
5。2013-11-20 16:28:44.73
用户“DOMAIN\MACHINENAME$”登录失败。原因:找不到与提供的名称匹配的登录名。[客户: ]

SCCM 用户自动发现不起作用,因为 AD 中的新用户没有被写入数据库,可能是由于这个原因。我重新创建了本地计算机用户并检查了数据库和服务器之间的 NT AUTHORITY\SYSTEM、NT AUTHORITY\NETWORK SERVICE 和 DOMAIN\MACHINENAME$ 用户匹配,并且 SID 都匹配。为此,我使用了:

select * from sys.database_principals
select * from sys.server_principals
Run Code Online (Sandbox Code Playgroud)

所有连接都是本地连接并使用 Windows 身份验证。SCCM 数据库的所有者是“sa”并且 SID 匹配。TCP/IP 和命名管道已启用,用于连接的端口是静态的。以上 3 个用户在服务器上设置为 sysadmin。

有任何想法吗?

sql-server sql-server-2012

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

带有报告服务的 SQL Server 2012 Express

在我搜索 SQL Server 2012 Express with Advanced Services 的任何地方,我都得到了这个链接,http://www.microsoft.com/en-us/download/details.aspx?id=35579,每次我安装它时,我看不到在哪里可以添加报告服务作为功能。

是否有另一个包含 Reporting Services 的安装文件,或者我现在确实拥有它但无法判断它已安装?我去了控制面板 -> 管理工具 -> 服务已经没有看到它列出来,这告诉我它没有安装?

更新:我已按照 Kin 的指示进行操作,但无法进一步推进。这就是我现在所在的地方。在 Reporting Services 配置管理器中,“连接”按钮呈灰色,当我单击“查找”时,我收到“无法连接到 Reporting Services...”的错误消息,请参见下文。
在此处输入图片说明

当我转到 SQL Server 配置管理器时,我没有看到 Reporting Services 作为列出开始停止的服务。见下文。 在此处输入图片说明

因此,在我看来,也许我没有安装 Reporting Services,所以我尝试安装这些功能,但没有将 Reporting Services 列为要添加的可用功能。见下文。我知道我下载了 .exe 文件,其中包含可供下载的所有内容,包括 Reporting Services。我的下一步应该是什么来进一步排除故障?我很想卸载并重新安装,但我不确定我是否可以正确卸载。似乎有很多与 SQL Server 2012 相关的文件,我不确定这会如何影响我目前安装的 Visual Studio。顺便说一句,我正在使用 Windows 7 进行本地桌面安装。 在此处输入图片说明

installation sql-server-2012

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

如何配置 PostgreSQL Hotstandby 自动故障转移

我已将两台 PostgreSQL 服务器配置为通过流式传输进行热备用。

我如何配置它以便当主服务器宕机时,从服务器将自动成为新的主服务器?

postgresql replication failover

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

如果我安装 SQL Server 客户端工具,我可以获得 OSQL 吗?

我们有一些遗留的 .bat 脚本,其中包含我们网络上现有 SQL Server 实例/数据库的 osql 命令。

我们已经尝试从我们的应用服务器 (Win Server 2008) 运行 .bat 脚本,但收到错误:“osql.exe' 未被识别为内部或外部命令”

我们希望我们不需要安装完整的 SQL Server 来访问 osql。

我听说你可以从客户端工具安装中获得它,只要连接到许可的 sql 服务器就不需要许可证。(我们会是)。

有人可以确认吗?“客户端工具”是安装光盘的一部分吗?
这是一个可行的解决方案吗?

谢谢大家的帮助!

sql-server sqlcmd

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

如何在 SQL Server Management Studio 中将数据库从服务器复制到本地计算机?

我对 SQL Server Management Studio 非常陌生。我使用 Windows 身份验证连接到 SQL Server。但不确定我的工作是否会影响服务器数据库。我怎样才能确保不会弄乱更新和提交数据?

sql-server ssms

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

SQL Server 2005 与 SQL Server 2012 上的按错误排序

我有一个由实体框架生成的查询,它在 SQL Server 2005 数据库 (Microsoft SQL Server 2005 - 9.00.5000.00 (X64)) 上返回错误结果,但在 SQL Server 2012 (Microsoft SQL Server 2012 - 11.0.2100.60) 上运行良好。

这是查询:

SELECT 
[Project2].[tableAid] AS [id],     
[Project2].[rank1] AS [rank]   
FROM ( SELECT 
    [Extent1].[id] AS [id], 
    [Extent2].[rank] AS [rank],        
    [Extent4].[rank] AS [rank1]      
    FROM    [dbo].[tableA] AS [Extent1]
    LEFT OUTER JOIN [dbo].[tableB] AS [Extent2] ON ([Extent1].[tableAid] = [Extent2].[tableAid]) AND (896 = [Extent2].[tableBid])
    INNER JOIN [dbo].[tableC] AS [Extent4] ON [Extent1].[tableCid] = [Extent4].[tableCid]        
)  AS [Project2]
ORDER BY [Project2].[rank] DESC
Run Code Online (Sandbox Code Playgroud)

我已经简化了它,但模型是:

TableA
int …
Run Code Online (Sandbox Code Playgroud)

sql-server order-by

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

行大小太大 (> 8126)

我面临以下问题。

Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In
Run Code Online (Sandbox Code Playgroud)

当前行格式,768 字节的 BLOB 前缀内联存储。

它出现在我将图像上传到数据库时(它具有 <1Mb)。准确地说,只有 100kb。

我尝试了很多事情:更改属性“max_allowed_pa​​cket”、“innodb_log_file_size”(即,将大小增加到 512M)并没有什么......

我不知道麻烦的原因。

为了说明,表

TABLE(
    `passeio` int(4) unsigned NOT NULL COMMENT 'identitificador do passeio',
      `data_inclusao` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
      `nome_passeio` varchar(200) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
      `inicio` date NOT NULL,
      `fim` date NOT NULL,
      `por_que_ir` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
      `pdf_roteiro` mediumblob NOT NULL,
      `incluso` …
Run Code Online (Sandbox Code Playgroud)

mysql innodb blob

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

Amazon RDS t2.small 作为生产服务器

我目前有一个 m3.medium 作为生产 PostgreSQL 服务器,但我想将它移动到具有多可用区功能的 RDS。

由于我们当前服务器的 CPU 使用率永远不会高于 5%,而且 RAM 使用率是 500MB,我正在考虑使用更便宜的实例,例如 RDS 上的 t2.small。在一些在线论坛和亚马逊帮助页面上,他们不推荐用于生产数据库的小型实例。这只是营销还是可能会出现一些真正的技术问题?

我发现 t2 和 m3 实例类型之间的唯一区别是可突增的 CPU,但由于我们的数据库服务器不使用任何 CPU,我想知道其他危险是什么。

aws amazon-rds

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

从字符串插入日期:CAST 与 CONVERT

考虑以下两种将日期时间 varchar 字符串转换为日期字段的方法:

SELECT convert(date, '2012-12-21 21:12:00', 20) -- Only date is needed
SELECT cast('2012-12-21 21:12:00' as date) -- Only date is needed
Run Code Online (Sandbox Code Playgroud)

两者都返回我期望的内容:不包括时间的日期,作为日期数据类型。

我的问题是:这两种方式有什么利弊吗?

sql-server t-sql type-conversion azure-sql-database cast

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