我一直在处理死锁,特别是获取他们的信息,正如你在这篇文章中看到的。
在同一篇文章中,Shanky推荐了“您现在必须依靠扩展事件跟踪来捕获死锁信息”
我的问题是:
1) 使用扩展事件是否会增加 CPU?
2) 它使用了多少内存、磁盘空间和 I/O?
任何相关文档的链接都将是奖励。
在处理每 10 分钟发生一次的意外 CPU 峰值时,我的一位同事准备了如下的服务器端跟踪:
-- Create a Queue
declare @rc int
declare @TraceID int
declare @maxfilesize bigint
declare @DateTime datetime
set @DateTime = '2015-09-03 10:50:00.000'
set @maxfilesize = 10240 --10GB
-- Please replace the text InsertFileNameHere, with an appropriate
-- filename prefixed by a path, e.g., c:\MyFolder\MyTrace. The .trc extension
-- will be appended to the filename automatically. If you are writing from
-- remote server to local drive, please use UNC path and make sure server has
-- …Run Code Online (Sandbox Code Playgroud) 这里有这个问题:
但这不是我要找的答案。
下面有一个问题,这可能是相关的,但不一样。
这个问题几乎是重复的,但涉及 2.6.11 版,我的是 3.0 版和 3.2 版。另外,除非我需要,否则我不想使用force : 1。
我一直在努力将答案中描述的大多数内容付诸实践,也许有一个例子或澄清,因此是这个问题。
我的复制工作正常,3 个节点,node1 是主节点。
当我运行以下命令时
//-----------------------------
//check the status of the replication
//-----------------------------
rs.status()
Run Code Online (Sandbox Code Playgroud)
我得到这个结果:
{
"set" : "Krishna",
"date" : ISODate("2016-04-26T14:59:40.263Z"),
"myState" : 1,
"members" : [
{
"_id" : 0,
"name" : "jpb01275:37001",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 1022,
"optime" : Timestamp(1461678841, 1),
"optimeDate" : ISODate("2016-04-26T13:54:01Z"),
"electionTime" : Timestamp(1461682464, …Run Code Online (Sandbox Code Playgroud) 在处理以下查询以回答此问题时:
有以下表格:
CREATE TABLE [dbo].[#foo] (
[creation] DATETIME NOT NULL,
[value] MONEY NULL,
[DT] AS (CONVERT([date],[CREATION])) PERSISTED)
-- add a clustered index on the dt column
CREATE CLUSTERED INDEX CI_FOO ON #FOO(DT)
GO
Run Code Online (Sandbox Code Playgroud)
和另一个加入表:
create table #bar (dt date primary key clustered)
go
Run Code Online (Sandbox Code Playgroud)
但是在运行以下查询时:
WITH RADHE AS (
SELECT THE_ROW=ROW_NUMBER() OVER(PARTITION BY B.DT ORDER BY B.DT),
THE_DATE=B.dt,
THE_NUMBER_OF_RECORDS_ON_THIS_DAY=CASE WHEN F.DT IS NULL THEN 0 ELSE COUNT(*) OVER (PARTITION BY F.DT ) END ,
THE_TOTAL_VALUE_FOR_THE_DAY=COALESCE(SUM(F.VALUE) OVER (PARTITION BY …Run Code Online (Sandbox Code Playgroud) performance sql-server optimization execution-plan sort-operator query-performance
在我的一台服务器中创建出版物的过程中,我不断收到以下错误消息
分发器尚未正确安装。无法启用数据库进行发布。
尽管我已经多次删除并重新创建了分配器。
--==============================================================
-- replication - create publication - complete
-- marcelo miorelli
-- 06-Oct-2015
--==============================================================
select @@servername
select @@version
select @@spid
select @@servicename
--==============================================================
-- step 00 -- configuring the distributor
-- if there is already a distributor AND it is not healthy,
-- you can have a look at the jobs related to this distributor and
-- MAYBE, if you need to get rid of it, run this step
-- generally you need to run this when …Run Code Online (Sandbox Code Playgroud) replication sql-server transactional-replication sql-server-2016
在对 sql server 2016 SP1 应用累积更新时,需要停止大量服务和应用程序才能继续进行更新。
其中包括虚拟机的核心,即 VMware Tools 核心服务。
停止此应用程序的所有实例以继续更新是否安全?
什么是安全的方法?
sql-server virtualisation windows-server sql-server-2016 patching
有一个类似的问题,但不一样:
我有以下查询和以下过滤索引,但我看不出该查询无法使用下面描述的过滤索引的任何原因:
- 查询 - 使用max列或仅使用列都没有关系,它不喜欢索引提示
SELECT -- MAX(AC1.changeDate)
AC1.changeDate
FROM [dbo].[applicationStateChange] AS ac1 WITH(INDEX(FI_ASC_ChangeDate))
WHERE ac1.applicationID = 130002
AND AC1.newStatus = 'PLC'
Run Code Online (Sandbox Code Playgroud)
-- 这是我的过滤索引 - 这个索引只是为了优化上面的查询
CREATE NONCLUSTERED INDEX FI_ASC_ChangeDate
ON [dbo].[applicationStateChange] ( applicationID DESC)
INCLUDE ( [changeDate] )
WHERE newStatus = 'PLC'
WITH ( PAD_INDEX = OFF, FILLFACTOR = 100 , SORT_IN_TEMPDB = OFF , IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF, ONLINE = On,
DROP_EXISTING = ON,
DATA_COMPRESSION=PAGE, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON ) …Run Code Online (Sandbox Code Playgroud) index optimization execution-plan filtered-index sql-server-2016
我可以 使用以下任一脚本获取所有表类型的名称和定义:
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
IF OBJECT_ID('TEMPDB..#RADHE') IS NOT NULL
DROP TABLE #RADHE
CREATE TABLE #RADHE
(
RADHE SYSNAME,
COLUMN_NAME SYSNAME,
TYPE_COLUMN SYSNAME,
PRIMARY KEY CLUSTERED (RADHE,COLUMN_NAME)
)
DECLARE @sql nvarchar(max) = N'',
@stub nvarchar(max) = N'SELECT [RADHE]=N''$--RADHE--$'',
COLUMN_NAME=name, TYPE_COLUMN=system_type_name
FROM sys.dm_exec_describe_first_result_set(''DECLARE
@tvp $--RADHE--$; SELECT * FROM @tvp;'',null,null)
ORDER BY column_ordinal;';
SELECT @sql += REPLACE(@stub, N'$--RADHE--$',
QUOTENAME(s.name) + N'.' + QUOTENAME(t.name))
FROM sys.table_types AS t
INNER JOIN sys.schemas AS s
ON t.[schema_id] = s.[schema_id];
INSERT …Run Code Online (Sandbox Code Playgroud) sql-server scripting sql-server-2016 user-defined-table-type automation
使用 Windows 身份验证,有没有办法禁止用户通过 ODBC 连接到数据库?
我是我的 SQL Server 2008 的系统管理员,我需要成为,但我想在生产服务器上设置我的安全性,以防止我意外恢复到生产数据库。我经常将数据库恢复到测试机器上供开发人员调试/测试,虽然我总是非常小心,大约十年后,今天我不是。
我的想法是在恢复权限上设置拒绝,如果我真的需要恢复,请删除拒绝,但我找不到这样的东西。
有谁知道如何做到这一点,或者有更好的主意?
sql-server ×8
optimization ×2
replication ×2
security ×2
automation ×1
connectivity ×1
deadlock ×1
index ×1
mongodb ×1
mongodb-3.0 ×1
patching ×1
performance ×1
permissions ×1
restore ×1
scripting ×1
trace ×1