标签: sql-server

日志传送 - 辅助数据库 - 哪种恢复模式?

在日志传送配置中 - 主数据库必须处于完整或大容量日志恢复模式。但是,对从库的恢复模式有什么要求吗?

示例:假设主数据库和辅助数据库都处于完整恢复模式,如果发生故障转移并且辅助数据库成为新的主数据库,我们可以更改数据库恢复模式。

另请参阅:https : //www.microsoftpressstore.com/articles/article.aspx?p=2832586&seqNum=3并搜索“日志传送数据库必须使用完整恢复模型”。- 这样对吗?

sql-server log-shipping recovery-model

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

为什么 SQL Server Developer Edition 2014 的 CPU 使用率低

CPU使用率较低,大约15%。CPU是4770K。SQL Server 数据文件分为 8 个部分,并与 tempdb(也分为 8 个部分)一起存储在 EVO 970 SSD 上。temdlog 和数据库日志位于另一个 SSD 上(读/写潜力约为 500MB/s)。我在下面的任务管理器中没有看到任何高磁盘使用率(10 MB/s),并且 RAM 使用率也不高(有 32 GB)。最大并行度设置为 8。

看起来 SQL Server 主要使用 1 个核心,但我不明白为什么。似乎不受磁盘或内存的限制,那么我怎样才能让它工作得更努力一些(使用更多的CPU)?

更新

测试了 Dan Guzman 的查询并确认 cpu 利用率更高,尽管很难有时间在任务管理器中看到(查询时间 2 秒)。很高兴知道开发者版本并未锁定一个核心。

测试了丹·布朗链接中的查询。并行化版本使我的 cpu 使用率超过 95%,因此案件似乎已经结束;cpu使用率低是因为查询。

我有很多相关子查询(在选择中选择),这对于性能来说看起来不太好。对于维护来说,最简单的方法是在一个查询中计算多个统计信息,但这种方式似乎只使用一个核心。我测试了将它们拆分,以便每个查询只计算一个指标,这样 sql server 就开始使用更多核心。

将来我想我会测试 Spark 对于相同查询的性能,看看它与 sql server 相比如何。也许还可以通过 Spark 在多个工作线程上运行针对 sql server 的查询(在这种情况下,我需要根据 pk 的模数进行分区来分割工作)。

对于感兴趣的人来说:我需要计算的是比赛的各种指标,这样对于每场比赛和每个竞争对手,我都会获取其最高记录,例如过去 3 个月、过去 6 个月等或过去 6 个月的平均时间。当查询时间约为 10 小时时,它开始影响我想做的分析工作(更改或纠正某些内容的一次迭代需要太长时间)。

sql-server

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

应用程序可以从本地 SQL Server 实例和 Azure SQL 一起连接到数据库吗?

一个应用程序可以连接到两个不同的数据库,每个数据库都在不同的实例中。一个实例在本地部署,另一个实例是 Azure SQL(不是 Azure VM 中的 SQL)。那么基本上一个应用程序可以从两个实例访问数据吗?

sql-server azure-sql-database

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

使用资源调控器并分配更多内存以满足查询的高内存授予请求?

在 SQL Server 2016 数据库服务器上,我几乎没有查询非常慢并且需要更多内存(查询未优化)。这使得整个数据库变慢,因为许多用户正在运行相同的查询。这导致其他查询等待。我CXCONSUMER等待(由于并行执行)和RESOURCE_SEMAPHORE.

所以这造成了内存压力(我相信这些缓慢的查询正在为其他查询造成内存争用,进而造成内存压力),我认为这导致我的计划缓存以固定的时间间隔清除。

我读到默认情况下Memory Grant %为 25%。我正在考虑增加这 25% 来为查询提供内存。我现在正在尝试暂时解决这个问题。

未优化的查询是 LINQ 查询,更改将需要团队一些时间。

所以请建议在资源调控器中增加Memory Grant %是否是一个好主意?

我总共有 128GB RAM,其中 75% (102 GB) 分配给 SQL Server。

sql-server memory resource-governor waits

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

如何使用 SQL Server 数据库邮件发送 Unicode 符号?

如何使用 SQL Server 数据库邮件发送 Unicode 符号?我的目标是发送关于电子邮件主题的符号。比方说,我想发送关于该主题的“带有符号的主题”。我想使用的符号来自 Segoe UI Emoji 字体。

谢谢!

sql-server database-mail unicode

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

SQL 获取分区边界和文件组

对于给定的分区方案名称,我需要检索一组

  • 边界值
  • 文件组名称

必须在不存在参与该方案的任何表的情况下起作用。

通过 sys.indexes 加入将不起作用。

认为答案在于 sys.destination_data_spaces,但尚未弄清楚与 sys.partition_range_values 的连接。

sql-server query metadata partitioning sql-server-2012

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

在回滚状态下杀死备份数天

我杀死了一个 80 MB 数据库的备份作业,它已经回滚了好几天......

我试图将数据库带入单用户模式,但那太挂在回滚状态。

我尝试杀死连接到数据库的所有会话,但仍然无法删除它。我用这个脚本来完成杀戮:

DECLARE @kill varchar(8000) = ''; SELECT @kill = @kill + 'kill ' + 
    CONVERT(varchar(5), session_id) + ';' 
FROM sys.dm_exec_sessions 
WHERE database_id = db_id('fpddev92') 
exec(@kill) 
Run Code Online (Sandbox Code Playgroud)

任务的最新等待类型是CMEMTHREAD。我无法使用不同的名称恢复数据库,因为有一个应用程序在使用它,该应用程序在应用程序中具有硬编码的数据库名称。

如果需要,我可以删除和恢复数据库。我该如何解决这个问题???它被暂停。没有阻塞。

恐怕如果我重新启动服务,它只会在启动时进行回滚。

任何帮助是极大的赞赏!我一生中从未见过这样的事情......

sql-server backup sql-server-2012

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

如何从 SQL Server 中带有时间戳列的日期中获取日期部分?

我想DDMMYYY从以格式存储日期的字段中获取格式的日期YYYY-MM-DD Timestamp。(例如,“2018-11-09”应显示“09Nov2018”)。

我知道一种方法是使用可以提取的datepart函数(https://docs.microsoft.com/en-us/sql/t-sql/functions/datepart-transact-sql?view=sql-server-2017)单独的年、月和日,然后我可以连接它们。

编辑:我不想使用getdate(). 有一列具有YYYY-MM-DD Timestamp格式,我正在从该列中提取'DDMM2018'. 我在用:

concat
(
  CONVERT(varchar, DATEPART(dd,columndate)), 
  CONVERT(varchar, LEFT(DATENAME(month, DATEPART(month,columndate)),3)) , 
  CONVERT(varchar, DATEPART(year, columndate))
) AS trial
Run Code Online (Sandbox Code Playgroud)

这给了我'9Nov2018'而不是'09Nov2018'。我打算再次将其转换回`datetype',因为这就是我想要的结果。

有没有其他方法可以实现这一目标?

任何想法/建议非常感谢。

sql-server-2008 sql-server

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

使用 oneliner sql 语句创建包含换行符的存储过程

我想将代码放在一行中,该行将创建一个包含换行符的存储过程。

  • 那可能吗?
  • 我需要使用 sp_executesql 吗?
  • 如何在 sql 语句中转义换行符?
  • 如何在字符串中转义换行符?

sql-server stored-procedures dynamic-sql t-sql

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

从视图生成 SQL 表 DDL

如何在一个脚本中从视图生成表结构?只需要数据类型,我正在寻找具有某种类型的动态 sql 的表创建脚本

(1) 可以删除主键/约束,

(2) 不在乎是否添加了 null/not null(但是如果有的话会很好)

我在下面提出了示例问题/答案,请随时对未包含在表中的其他数据类型进行代码审查、编辑/优化,特殊情况/问题/例外可能没有考虑在内。顺便说一下,是否有任何开源代码?

表 1 和 2:

create table dbo.Customer
(
     CustomerId int primary key,
     CustomerName varchar(255),
     ZipCode varchar(9)
)
create table dbo.CustomerTransaction
(
     CustomerTransactionId int primary key identity(1,1),
     CustomerId int,
     SalesAmount numeric (10,2),
     PurchaseDate datetime
)
Run Code Online (Sandbox Code Playgroud)

看法:

create view dbo.CustomerTransactionVw
as
select 
     ct.CustomerTransactionId,
     ct.SalesAmount,
     ct.PurchaseDate,
     cust.CustomerId,
     CustomerName,
     cust.ZipCode
from dbo.CustomerTransaction ct
inner join dbo.Customer cust
  on cust.CustomerId = ct.CustomerId
Run Code Online (Sandbox Code Playgroud)

预期的表创建脚本:

create table dbo.CustomerTransactionBigTable
(
     CustomerTransactionId int identity(1,1),
     CustomerId int,
     SalesAmount numeric (10,2), …
Run Code Online (Sandbox Code Playgroud)

sql-server view dmv sql-server-2016

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