这对我来说不是个好日子。我有一个 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
请帮我恢复我的备份数据库,以便我可以继续我的业务!
我目前正在看这个Entity Framework 上视频,大约 15 分钟后,演讲者说表值函数偶尔会执行 UDF。
我的问题是在什么情况下 TVF 会执行 UDF?
在我管理的 SQL 服务器实例中;我在 SQL 服务器错误日志中看到很多活动和消息,例如备份或事务日志备份已完成等。我们在一个实例中有很多数据库,有时错误日志消息的数量也很多。
作为一名偶然的 DBA,我可以使用什么方法或脚本来过滤指定日期范围的错误日志,或者从大量信息消息中查找或过滤令人不安的错误?
我想问一下,是否有可以用来过滤错误日志的 T-SQL 脚本或 DMV?
当我尝试将 LDF 从一个生产复制到开发时,我不断收到“文件在另一个程序中打开”的消息。还有另一种方法可以将这些 ldf 复制到开发服务器吗?
我的问题是,当我尝试缩小日志时,它会在我以 SA 身份登录时起作用,但是当我以“普通”用户身份登录时,它不会缩小日志。(SQL Express 2008r2)
我试图找到我的问题的答案,但我不能。所以请帮助我!=)
我好像记得前段时间读过一篇文章说我可以将一个 SQL Server 数据库拆分成多个文件,请允许我详细说明。
我有一个数据库,里面有十几个表,这些表反映了过去 'n' 年的统计数据。该表称为History2007,History2008等和当年的表就被称为History。前几年的所有表都包含静态数据(不会更改),我想将这些文件移动到链接到主数据库的另一个文件中。随着旧的数据表中包含外键Articles,Clients而Suppliers等我不能只是这些表复制到一个新的数据库。
整个想法是减少数据库和备份的大小,因为我可以对“旧”数据进行一次备份,并且直到明年才会改变。
有什么想法吗?想法?指导?
谢谢,马丁。
我在存储过程中有一个查询,当它通常以毫秒为单位运行时,相同的输入将定期超时(> 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
关于其他地方的任何建议或此问题的来源?
以下摘录是从本页摘录。
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) 让我们假设我们有一个如下表:
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。
首先,我可以描述表的架构,但我的表本身大约是 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 …