标签: sql-server

无法恢复数据库:从服务器接收结果时发生传输级错误

这对我来说不是个好日子。我有一个 SQL Server 2005 Express SP4 (v.9.0.500) 的备份 (master.bak),我想将其还原到我的主数据库实例。我在单用户模式下运行 SQL Server (sqlservr.exe -m),连接到实例,然后我执行任务...恢复。这是我得到的错误:

标题:Microsoft SQL Server Management Studio Express

服务器“GINO\SQLEXPRESS”的还原失败。(Microsoft.SqlServer.Express.Smo)

如需帮助,请单击:http : //go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=9.00.2047.00&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Restore+Server&LinkId=20476

- - - - - - - - - - - - - - - 附加信息:

无法检索此请求的数据。(Microsoft.SqlServer.Express.SmoEnum)

如需帮助,请单击:http : //go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&LinkId=20476


执行 Transact-SQL 语句或批处理时发生异常。(Microsoft.SqlServer.Express.ConnectionInfo)


从服务器接收结果时发生传输级错误。(提供程序:共享内存提供程序,错误:0 - 管道已结束。)(Microsoft SQL Server,错误:109)

如需帮助,请单击:http : //go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&EvtSrc=MSSQLServer&EvtID=109&LinkId=20476

请帮我恢复我的备份数据库,以便我可以继续我的业务!

sql-server-2005 sql-server

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

表值函数与 UDF SQL Server

我目前正在看这个Entity Framework 上视频,大约 15 分钟后,演讲者说表值函数偶尔会执行 UDF。

我的问题是在什么情况下 TVF 会执行 UDF?

sql-server

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

SQL Server 错误日志监控

在我管理的 SQL 服务器实例中;我在 SQL 服务器错误日志中看到很多活动和消息,例如备份或事务日志备份已完成等。我们在一个实例中有很多数据库,有时错误日志消息的数量也很多。

作为一名偶然的 DBA,我可以使用什么方法或脚本来过滤指定日期范围的错误日志,或者从大量信息消息中查找或过滤令人不安的错误?

我想问一下,是否有可以用来过滤错误日志的 T-SQL 脚本或 DMV?

sql-server

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

将 ldf 从一台服务器复制到另一台服务器

当我尝试将 LDF 从一个生产复制到开发时,我不断收到“文件在另一个程序中打开”的消息。还有另一种方法可以将这些 ldf 复制到开发服务器吗?

sql-server logs

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

SHRINK FILE 适用于 SA,但不能作为普通用户使用

我的问题是,当我尝试缩小日志时,它会在我以 SA 身份登录时起作用,但是当我以“普通”用户身份登录时,它不会缩小日志。(SQL Express 2008r2)

我试图找到我的问题的答案,但我不能。所以请帮助我!=)

sql-server shrink sql-server-express

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

我可以物理拆分 SQL Server 数据库吗?

我好像记得前段时间读过一篇文章说我可以将一个 SQL Server 数据库拆分成多个文件,请允许我详细说明。

我有一个数据库,里面有十几个表,这些表反映了过去 'n' 年的统计数据。该表称为History2007History2008等和当年的表就被称为History。前几年的所有表都包含静态数据(不会更改),我想将这些文件移动到链接到主数据库的另一个文件中。随着旧的数据表中包含外键ArticlesClientsSuppliers等我不能只是这些表复制到一个新的数据库。

整个想法是减少数据库和备份的大小,因为我可以对“旧”数据进行一次备份,并且直到明年才会改变。

有什么想法吗?想法?指导?

谢谢,马丁。

sql-server-2008 sql-server

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

SQL Server 查询性能受重建未分段索引的影响

我在存储过程中有一个查询,当它通常以毫秒为单位运行时,相同的输入将定期超时(> 30 秒)。

该表有 2077748 行、59 列和 13 个索引。我们发现重建其中一个索引会使性能恢复到毫秒级。

这是有趣的部分。此索引每次重建时的碎片百分比小于 1%,上次为 0.01%。我一直在玩填充因子,因为我认为这可能是一个扩展问题,它是 100,然后是 80,现在是 60。这并没有影响这个问题的频率。

当我运行以下

select b.name,* 
from sys.dm_db_index_physical_stats(5,1075691080,NULL,NULL,NULL) a
JOIN sys.indexes b ON a.object_id = b.object_id AND a.index_id = b.index_id
Run Code Online (Sandbox Code Playgroud)

我得到

index_id partition_number index_type_desc alloc_unit_type_desc index_depth index_level avg_fragmentation_in_percent fragment_count avg_fragment_size_in_pages page_count

66 1 非聚集索引 IN_ROW_DATA 3 0 0.01 1116 18.9229390681004 21118

关于其他地方的任何建议或此问题的来源?

sql-server

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

SQL Server 函数调用语法问题

以下摘录是从本页摘录。

CURRENT_USER (Transact-SQL)

返回当前用户的名称。此函数等效于 USER_NAME()。

当我使用以下 TSQL 脚本(有问题的脚本被注释)执行这两个函数时,我对调用语法感到困惑。我想知道何时使用括号,何时不使用。谢谢!

SELECT CURRENT_USER
-- SELECT CURRENT_USER() -- Error!
SELECT USER_NAME()
-- SELECT USER_NAME -- Error!
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql

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

SQL Server - 包含 PK 的索引

让我们假设我们有一个如下表:

PK -- nonclustered primary key
Col1 -- unique clustered
Col2
Col3
Run Code Online (Sandbox Code Playgroud)

这是指数:

nonclustered index on (Col2, Col3)
Run Code Online (Sandbox Code Playgroud)

与此索引的任何不同:

nonclustered index on (Col2, Col3) include (PK)
Run Code Online (Sandbox Code Playgroud)

如果我的 PK 是集群的而不是非集群的怎么办?现在它有所作为/没有有所作为吗?

编辑添加:

我想这是一种迂回的提问方式:非聚集索引的指针是基于聚集索引还是主键返回到表?我假设使用的是聚集索引 RID。

index sql-server-2005 sql-server

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

查询优化:在我的情况下哪个更好 - CURSOR 或基于集合的方法?

首先,我可以描述表的架构,但我的表本身大约是 80GB,所以我希望一些专家的眼睛可以看到可以执行的任何明显的优化。我正在进行一些基于活动的分析,以了解来自内部虚拟游戏环境的一组用户。

我有两个基表:

EventTable: Moderately big at 10GB
Activity_ID UserName ActivityStart ActivityEnd Badge

ActivityTable: Super big at 100GB
UserName ActivityTime Game1Points Game2Points
Run Code Online (Sandbox Code Playgroud)

简而言之,我正在尝试以下操作:

- For each activity in the EventTable:
   - Compute the median of Game1Points, Game2Points 
     for two cases: for all entries in the ActivityTable 
     that were present since 1 hour before the activity 
     and for all entries stored during the activity itself
Run Code Online (Sandbox Code Playgroud)

因此,我期待的决赛桌是这样的:

ResultTable:
Activity_ID Badge Game1_Before Game1_During Game2_Before Game2_During
Run Code Online (Sandbox Code Playgroud)

这显然看起来像是CURSORs的工作,所以我首先使用这种方法编写了我的查询。它正在运行,我可以看到进度,但在阅读了这么多恐怖故事之后,我决定用基于集合的方法重写我的 200 行基于 CURSOR 的方法。这非常适用于小桌子。但是,对于我这种大小的桌子,它似乎停滞不前(或者至少我不确定应该运行多长时间)。我运行Display …

sql-server-2008 sql-server query

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