use master
go
ALTER DATABASE Apcore SET SINGLE_USER WITH ROLLBACK IMMEDIATE
RESTORE DATABASE Apcore
FROM DISK=N'C:\Backups\QG-V-SQL-TS$AIFS_DEVELOPMENT_APCore_FULL_20180909_230034.bak'
WITH FILE = 1,
MOVE N'APCoreDataPrimary' TO N'C:\Program Files\Microsoft SQL Server\MSSQL13.DEVELOPMENT\MSSQL\DATA\APCoreDataPrimary.mdf',
MOVE N'APCoreData1' TO N'C:\Program Files\Microsoft SQL Server\MSSQL13.DEVELOPMENT\MSSQL\DATA\APCoreData1.ndf',
MOVE N'APCoreData_nonclusteredIndexes' TO N'C:\Program Files\Microsoft SQL Server\MSSQL13.DEVELOPMENT\MSSQL\DATA\APCoreData_nonclusteredIndexes.ndf',
MOVE N'APCoreLog_log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL13.DEVELOPMENT\MSSQL\DATA\APCoreLog_log.ldf',
recovery, NOUNLOAD, REPLACE, STATS = 1
Run Code Online (Sandbox Code Playgroud)
在开发人员的机器上恢复数据库时,出现上述错误。
我这样做的方式是:
restore filelestonly这是确定会是什么呢?
非聚集索引使用聚集索引的键定位行与该表没有聚集索引且非聚集索引通过 RID 定位行之间是否存在性能差异?
不同级别的碎片是否也会影响这种性能比较?(例如,在这两种情况下,表的碎片率为 0%、50%、100%。)
performance sql-server clustered-index nonclustered-index bookmark-lookup performance-tuning
我需要从我域中的所有实例中删除用户。
为了做到这一点,我想创建一个 CMS 组并对其执行查询。问题是我要添加 150 多台服务器。如何将服务器批量添加到组中而不是手动添加?
这个问题让我疯狂了几天,我可能已经找到了答案,但我需要确认并检查最终的简单解决方案。
当存储过程使用一些用户定义的函数时,UDF 计划是合并到主计划中并且一切都得到优化还是每次都直接调用?
假设它没有发生,有没有办法强制 SQL Server 为特定的 SP 执行它?
如果该表被重命名,表上的外键关系会发生什么变化?
我有一个关于将 SQL Server 2017 设置为服务的最佳方式的问题。
我有客户将 SQL Server 数据库作为服务购买,就好像它是 Azure 或 AWS 实例一样,他们无法访问服务器。他们在实例中只有用户名和密码,我需要向这些用户隐藏可通过 SQL Server Management Studio 或 T-SQL 命令访问的服务器配置,例如分配给实例的内存、CPU 数量等.
在 SQL Server 2016 中,我通过删除 master..xp_msver 视图的权限来完成此操作。例如,如果没有此权限,他们将无法查看实例属性(在 SSMS 中右键单击服务器)和 Facets 表单中的一些数据。即使没有此权限,他们也可以登录并在其数据库中执行所需的一切操作。
但在 SQL Server 2017 中,这不再有效,如果我拒绝此视图的权限,则无法再登录 SQL Server。
我知道将标准 SQL Server 用作服务可能不正确,也许它还没有为此做好准备,但是有正确的方法吗?或者可以使用哪些替代方案?
我花了很多时间在 Google 上试图寻找替代方案,但是对于 SQL Server 2017,我没有找到任何隐藏服务器设置的东西。
注意:我的用户使用 SQL Server Management Studio...
一个表可以同时具有聚集列存储索引和非聚集列存储索引吗?
我看到了仅将聚集列存储索引与非聚集二进制行索引一起使用的示例策略。
当我尝试创建集群列存储和非集群列存储时,我收到错误:
Msg 35339, Level 16, State 1, Line 7
Multiple columnstore indexes are not supported.
Run Code Online (Sandbox Code Playgroud) performance index sql-server columnstore sql-server-2016 performance-tuning
我正在尝试写一个游标。我创建了一个表,用于从 sys.dm_exec_sessions 捕获登录名和时间。现在,我需要编写一个游标,以便在登录名已存在的情况下将登录时间更新为上次登录时间,并在表中不存在登录名的情况下插入一行。我想出了以下方法,但不幸的是,我收到一个错误,子查询返回多个值。有任何想法吗???
declare @log as varchar(200)
declare @log_time as datetime
declare LoginsSize cursor for
SELECT login_name, login_time
FROM sys.dm_exec_sessions
open LoginsSize
fetch next from LoginsSize into @log, @log_time
while( @@fetch_status = 0)
begin
If (Select Login from [dbo].[LoginsForDBUserList]) = @log
Begin
UPDATE [dbo].[LoginsForDBUserList]
SET LastLoginTime = @log_time
WHERE [login]= @log
END
Else
Begin
Insert Into [dbo].[LoginsForDBUserList]
SELECT login_name, login_time
FROM sys.dm_exec_sessions
END
fetch next from LoginsSize into @log, @log_time
close LoginsSize
deallocate LoginsSize
end
Run Code Online (Sandbox Code Playgroud) 我从我的 .net 应用程序中收到以下错误。
Source: xxx.Services.xxx.xxx.xxxx.xxxx.xxxxRequest
---
System.Data.Entity.Core.EntityException: The underlying provider failed on Open. ---> System.InvalidOperationException: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.
Run Code Online (Sandbox Code Playgroud)
我看过几篇关于这个连接池错误的帖子。我已经阅读了其中的大部分内容,我明白为什么会发生这种情况,以及应用程序端的可能解决方案,比如关闭应用程序打开的连接。这些是我的理解:
我如何从数据库端监控这一点。我看到了一些建议,例如使用 sp_who 或 sp_who2 查看现有会话。当我看到这些错误时执行 sp_who2 时,我看到很多活动会话,但是我怎么能看到连接池池下的信息和连接。问题:
我注意到当问题发生时,通常运行得更快的查询会变慢。
我按照https://dbatools.io/offline/ 上的说明进行操作:
下载压缩包并解压
运行$env:PSModulePath以查找所有路径。
复制到C:\Program Files\WindowsPowerShell\Modules.
跑 Get-ChildItem -Recurse "C:\Program Files\WindowsPowerShell\Modules" | Unblock-File
当我尝试运行时Export-DbaInstance -SqlInstance,出现以下错误:
术语 Export-DBAInstance 无法识别”。
任何帮助将不胜感激。
sql-server ×10
performance ×2
backup ×1
columnstore ×1
cursors ×1
dbatools ×1
foreign-key ×1
index ×1
optimization ×1
powershell ×1
query ×1
restore ×1
table ×1
timeout ×1
transaction ×1