标签: sql-server-2008

查询计划中异常高的运营商成本的迹象?

我有一个每月的 ETL 过程,太复杂了,在这里解释不了,但基本上我们获取大量客户数据,将其批量加载到各种表中,然后运行一系列构建过程。

总数据量很大,我们每个月增加25-30m记录到最大的表,总共有大约700m记录。每个都有 2m-300m 记录的支持表。该集合的总数据约为 3.5TB。

本月,某些流程所需的时间比平时长得多。一个例子是一个通常在 30 分钟内完成的过程,在我杀死它之前花了大约 40 小时(它仍然没有完成)。

并非所有进程都受到影响,有些进程甚至比平时运行得更快。

显然,根本原因超出了我在这里可以问的范围,但有一些事情困扰着我:

我们有实际的查询计划,以数百万% 显示单个运营商。

像对 的聚簇索引扫描791,358,704%、对 的合并连接75,566,494%等。这发生在多个查询计划中,而这些计划取自sys.dm_exec_query_plan

这些查询计划是否表明了其他一些更大的问题?

我确信问题不是过时的统计数据 - 我们对所有主要表以及最大的表和数据库进行了全扫描,我手动重建了预先调整大小以消除碎片。

performance sql-server-2008 sql-server

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

使用单个 SQL 语句查找 HierarchyId 的所有祖先节点?

我正在尝试找到一种使用 HierarchyID 获取给定节点的所有祖先节点的方法。我见过的每个使用 HierarchyID 的解决方案似乎都使​​用 CTE 或变量。有没有办法使用单个 select 语句来做到这一点?

为了让事情更简单:

CREATE TABLE Employee
(
    EmpId INT PRIMARY KEY IDENTITY,
    EmpName VARCHAR(100) NOT NULL,
    Position HierarchyID NOT NULL
)

INSERT INTO Employee (EmpName, Position)
VALUES ('CEO', '/'),
    ('COO', '/1/'),
    ('CIO', '/2/'),
    ('CFO', '/3/'),
    ('VP Financing', '/3/1/'),
    ('Accounts Receivable', '/3/1/1/'),
    ('Accountant 1', '/3/1/1/1/'),
    ('Accountant 2', '/3/1/1/2/'),
    ('Accountant 3', '/3/1/1/3/'),
    ('Accounts Payable', '/3/1/2/'),
    ('Accountant 4', '/3/1/2/1/'),
    ('Accountant 5', '/3/1/2/2/'),
    ('DBA', '/2/1/'),
    ('VP of Operations', '/1/1/')
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 t-sql

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

GROUP BY 上的 SQL Server 内部不一致

我最近使用DBCC CHECKDB WITH REPAIR ALOW DATA LOSS.

现在我可以从表值函数中选择记录来检索销售记录,但是对相同数据使用 GROUP BY 会导致“内部不一致”错误。

运行 DBCC CHECKDB 返回零不一致错误。

我已经运行了我所知道的一切来检测任何撕裂的页面,但没有找到。

如何找到撕裂的页面或强制重建?

sql-server-2008 sql-server dbcc

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

Sql Server Management Studio for 2008 Express?

我刚刚在一台新的笔记本电脑上安装了 Win7,并想在上面安装一个轻量级的 MS Sql Sever。VS2010 已经安装了 SS2008 Express。所以现在我只需要一个管理工作室。

你会推荐什么?我看到有一个 Management Studio Express,并且还了解到您可以从 SS2008 完整光盘安装 Management Studio。有没有首选路线?

sql-server-2008 sql-server ssms

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

如何在 Sql Server 2008 中备份和恢复单个文件组

以前,在 ServerFault 上,我问了一个关于备份和恢复 Sql Server 2008 文件组的问题。

今天,当我尝试RESTORE这些FILEGROUP备份之一时,出现以下错误:-

Processed 1895080 pages for database 'XWing', file 'XWing' on file 1.
Processed 4 pages for database 'XWing', file 'XWing_log' on file 1.
The database cannot be recovered because the log was not restored.
The database cannot be recovered because the log was not restored.
The roll forward start point is now at log sequence number (LSN) 221218000000010400001. Additional roll forward past LSN 221218000000010400001 is required to …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server backup filegroups restore

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

事务复制会立即推送 CREATE INDEX 吗?或者我需要一个快照?

我在 SQL 2008 上设置了事务复制,并且有问题的文章将“复制非聚集索引”设置为 TRUE。

如果我在发布者上添加一个非聚集索引(使用 CREATE INDEX),它会立即推送给订阅者吗?

还是我需要运行快照?

replication sql-server-2008

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

sql server 分区上的非聚集唯一索引

SQL Server 2008需要在分区上创建唯一的非聚集索引,以在索引定义中包含分区字段。

我想知道为什么。

sql-server-2008 partitioning

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

Service Broker:在有毒消息后丢弃队列监视器

我到处搜索,网上没有答案。stackoverflow 上有一个类似的问题,但它并不完全相同,并且没有公认的答案。

当我在队列上设置事件通知时,它会创建一个队列监视器,如果从该队列接收消息导致有害消息,队列监视器就会消失。它不在“RECEIVE”或“INACTIVE”中,它只是下降。并且在使用ALTER QUEUE somequeue WITH STATUS = ON;队列监视器启用队列后不会重新出现,我需要删除并重新创建事件通知以使事件通知再次工作。

所以问题是,这是有意为之吗?在我重新启用中毒消息后的队列之后,重新创建事件通知是一种常见的做法。

谢谢!

sql-server-2008 sql-server service-broker

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

SQL Server 2008:无法访问数据库 [dbName]

我从另一个人那里得到了这个错误,我已经没有想法了。我可以毫无问题地访问这个数据库,数据库处于 MULTI_USER 模式,收到错误的人是用户等。

数据库是 READ_ONLY 并且有问题的用户以前使用过这个数据库并且只有数据库读取权限,所以没有设置被篡改的机会。

昨天,我添加了一些函数,不得不设置为 SINGLE_USER 和 READ_WRITE,但我已经三重检查了 db 是否已设置回 MULTI_USER。我无法确定这是巧合还是因果关系。无论哪种方式,我都处于死胡同。

这是错误报告:

The database [dbName] is not accessible. (Object Explorer)

----------------------------------------
Program Location: 

    at Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.DatabaseNavigableItem.get_CanGetChildren()
    at Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.NavigableItem.RequestChildren(IGetChildrenRequest Request)
    at Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.ExplorerHierarchyNode.BuildChildren(WaitHandle quitEvent)
Run Code Online (Sandbox Code Playgroud)

有这种错误的经验吗?

sql-server-2008

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

SQLEXPRESS 和 MSSQLSERVER 有什么区别?

我使用的是 SQL Server 2008 R2,当我查看 SQL Server 的服务时,我看到有两种不同的服务具有不同的实例。

  1. SQLEXPRESS
  2. MSSQLSERVER

谁能帮我弄清楚#1 和#2 之间的区别?

提前致谢

sql-server-2008 sql-server-2008-r2 visual-studio-2010

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