今天,我们的生产 sql 服务器的性能下降了。在发生这种情况时,我们记录了几个"The query processor could not start the necessary thread resources for parallel query execution"错误。我所做的阅读表明,这与执行复杂查询时要使用的 CPU 数量有关。但是,当我在停电期间检查我们的CPU Utilization was only at 7%. 还有什么其他的东西可以指代我还没有遇到过吗?这是性能下降的可能罪魁祸首还是我在追逐红鲱鱼?
我的 sp_configure 值如下:
name minimum maximum config_value run_value
cost threshold for parallelism 0 32767 5 5
Run Code Online (Sandbox Code Playgroud) 我今天正在Dynamic Ports与我的一位同事讨论,可以使用一些帮助来澄清他们的工作方式。
第一个问题:如果IPALL TCP Dynmaic Ports设置是一个特定的数字(比如 1971),这是否表示您有一个 1971 的静态端口或一个当前为 1971 的动态端口,并且可能会在将来的某个时候发生变化。

第二个问题:这是我最好奇的一个。我们有一个实例,IPALL TCP Dynmaic Ports通过数十次实例重启,该实例具有相同的端口(设置中的值)数年。是什么导致实例重启后动态端口实际发生变化?
我在一个表上有一个持久计算列,它只是由连接列组成,例如
CREATE TABLE dbo.T
(
ID INT IDENTITY(1, 1) NOT NULL CONSTRAINT PK_T_ID PRIMARY KEY,
A VARCHAR(20) NOT NULL,
B VARCHAR(20) NOT NULL,
C VARCHAR(20) NOT NULL,
D DATE NULL,
E VARCHAR(20) NULL,
Comp AS A + '-' + B + '-' + C PERSISTED NOT NULL
);
Run Code Online (Sandbox Code Playgroud)
这Comp不是唯一的,并且 D 是每个组合的有效起始日期A, B, C,因此我使用以下查询来获取每个组合的结束日期A, B, C(基本上是 Comp 相同值的下一个开始日期):
SELECT t1.ID,
t1.Comp,
t1.D,
D2 = ( SELECT TOP 1 t2.D
FROM dbo.T t2
WHERE t2.Comp = …Run Code Online (Sandbox Code Playgroud) sql-server-2008 sql-server execution-plan computed-column bookmark-lookup
我正在研究 SQL ServerREAD COMMITTED SNAPSHOT和SNAPSHOT隔离级别之间的差异,并发现以下资源:
对于大多数应用程序,由于以下原因,建议使用行版本控制读取提交隔离而不是快照隔离:
与快照隔离相比,它消耗的 tempdb 空间更少。
快照隔离容易受到更新冲突的影响,这些冲突不适用于使用行版本控制的已提交读隔离。当一个在快照隔离下运行的事务读取数据然后被另一个事务修改时,快照事务对相同数据的更新会导致更新冲突,事务终止并回滚。这不是使用行版本控制的已提交读隔离的问题。
我对这些主题有些陌生,但我似乎无法理解上面链接中的两个要点。
为什么这些模式的 tempdb 空间会不同?一个存储比另一个更精细的版本控制吗?
为什么快照隔离更容易受到更新冲突的影响?
我正在运行 SQL Server 2012。
SQL Server Management Studio 可以选择右键单击数据库,然后选择任务和生成脚本。
有没有办法通过命令行以某种方式自动化?
我想创建一个包含整个数据库的架构和数据的脚本。
之类的工具ScriptDB,并sqlpubwiz.exe似乎都针对SQL Server 2005的什么有关SQL Server 2012?
我做得对吗……?
我有一个返回钱的函数...
CREATE FUNCTION functionName( @a_principal money, @a_from_date
datetime, @a_to_date datetime, @a_rate float ) RETURNS money AS BEGIN
DECLARE @v_dint money set @v_dint = computation_here
set @v_dint = round(@v_dint, 2)
RETURN @v_dint
END
GO
Grant execute on functionName to another_user
Go
Run Code Online (Sandbox Code Playgroud)
我只是想知道这是否可以转换为 iTVF?
我试过这样做,但出现错误:
CREATE FUNCTION functionName ( @a_principal money, @a_from_date
datetime, @a_to_date datetime, @a_rate float )
RETURNS TABLE AS
RETURN SELECT returnMoney = computation_here
GO
Grant execute on functionName to another_user Go
Run Code Online (Sandbox Code Playgroud)
错误:
消息 4606,级别 16,状态 1,第 2 行授予或撤销特权 …
我需要一些帮助来找出以下T-SQL语句返回的原因1(true):
SELECT IIF( 0 = '', 1, 0)
Run Code Online (Sandbox Code Playgroud)
我猜有人改变了一个ANSI选项,比如SET ANSI_NULLS导致这种行为的其他东西。
我的问题是我加入了一些值,在最后一行集中我有由0和''值连接的值,这是不正确的。
我正在接管一个项目,该项目涉及删除和限制我们服务器场中所有数据库用户的权限。(娱乐时间)
当前受限的权限之一是 db_owner 权限。
正在逐案审查此权限,但常见的更改是将 db_owner 权限替换为以下内容:
我想定义两者之间的确切区别(通知客户)。
但是,据我所知,两者之间的区别应该是:
所以实际上他们会失去:
[ALTER ANY USER]
[CREATE SCHEMA]
[BACKUP DATABASE], [BACKUP LOG], [CHECKPOINT]
[ALTER ANY APPLICATION ROLE],[ALTER ANY ROLE]
[DROP DATABASE]
一旦 db_owner 被上述四个角色取代,用户还有什么会丢失的吗?
这实际上在安全方面起到了很大的作用吗?
我是 T-SQL 的初学者。我想确定输入字符串是否是回文,如果不是,则输出 = 0,如果是,则输出 = 1。我仍在弄清楚语法。我什至没有收到错误消息。我正在寻找不同的解决方案和一些反馈,以更好地理解和了解 T-SQL 的工作原理,从而变得更好——我仍然是一名学生。
在我看来,关键思想是将最左边和最右边的字符相互比较,检查是否相等,然后继续比较左边第二个字符和倒数第二个字符,依此类推。我们做一个循环:如果字符彼此相等,我们继续。如果到达终点,则输出 1,否则,输出 0。
请您批评一下:
CREATE function Palindrome(
@String Char
, @StringLength Int
, @n Int
, @Palindrome BIN
, @StringLeftLength Int
)
RETURNS Binary
AS
BEGIN
SET @ n=1
SET @StringLength= Len(String)
WHILE @StringLength - @n >1
IF
Left(String,@n)=Right(String, @StringLength)
SET @n =n+1
SET @StringLength =StringLength -1
RETURN @Binary =1
ELSE RETURN @Palindrome =0
END
Run Code Online (Sandbox Code Playgroud)
我认为我在正确的轨道上,但我还有很长的路要走。有任何想法吗?
从一组大表中归档除滚动 13 个月之外的所有内容。存档数据必须存储在另一个数据库中。
“归档”表将有大约 11 亿行,“活”表大约有 4 亿行。显然存档表会随着时间的推移而增加,但我希望活动表也能合理快速地增加。至少在接下来的几年里说 50%。
我曾考虑过 Azure 扩展数据库,但不幸的是我们在 2008 R2 并且可能会在那里停留一段时间。
问题: 我正在尝试将数据移动到初始分区表中(实际上我仍在对其进行概念验证)。我正在尝试使用 TF 610(根据数据加载性能指南)和一个INSERT...SELECT语句来移动数据,最初认为它会被最少记录。不幸的是,每次我尝试它都被完全记录。
在这一点上,我认为我最好的选择可能是使用 SSIS 包移动数据。我试图避免这种情况,因为我正在处理 200 个表,并且我可以通过脚本轻松生成和运行任何我可以做的事情。
我的总体计划中是否遗漏了任何内容,SSIS 是快速移动数据和最少使用日志(空间问题)的最佳选择吗?
-- Existing structure
USE [Audit]
GO
CREATE TABLE [dbo].[AuditTable](
[Col1] [bigint] NULL,
[Col2] [int] NULL,
[Col3] [int] NULL,
[Col4] [int] NULL,
[Col5] [int] …Run Code Online (Sandbox Code Playgroud) sql-server ×10
functions ×2
t-sql ×2
architecture ×1
archive ×1
parallelism ×1
permissions ×1
scripting ×1
tcpip ×1