我就我的问题挖了几个小时,但没有得到满意的答案。我还是有疑问。我发现了以下关于聚集索引的信息:
我得到了这些点,但我的问题是:
请找到我的表架构:
让我知道是否需要其他任何内容才能获得这些问题的答案。
如果我从 SQL Server 2016 实例备份数据库,然后将其还原到 2017 实例以对其进行一些工作。
然后我可以从 2017 年实例中转身并备份该数据库,并使用它来覆盖 2016 年实例上的原始版本吗?
我从备份中恢复了一个数据库。数据库使用复制发布到不同的服务器。假设数据库还原会破坏复制,我尝试删除复制并重新创建它(我们有一个脚本可以从头开始重新创建它)。我不确定我到底做了什么,但现在它处于完全混乱的状态,我无法修复它。
首先,我尝试取消订阅(在发布服务器上):
EXEC sp_dropsubscription @publication = 'PublicationName', @article = N'all', @subscriber = 'SubscriberServerName'
Run Code Online (Sandbox Code Playgroud)
这似乎有效。SELECT * FROM syssubscriptions显示没有结果。查看订阅服务器,SSMS > {SubscriberServer} > Replication > Local Subscriptions - 订阅不在那里。
然后我尝试删除该出版物。SSMS > {Server} > 复制 > 本地发布 > {PublicationName} > 删除。这给出了以下错误消息:
Could not delete publication 'PublicationName'.
Could not drop article. A subscription exists on it.
Changed database context to 'DatabaseName'. (Microsoft SQL Server, Error: 14046)
Run Code Online (Sandbox Code Playgroud)
好的,所以我尝试删除这些文章:
EXEC sp_droparticle @publication = 'PublicationName', @article = N'all'
Run Code Online (Sandbox Code Playgroud)
并收到此错误:
Invalidated the existing snapshot of the publication. …Run Code Online (Sandbox Code Playgroud) replication sql-server sql-server-2012 troubleshooting transactional-replication
我一直在对 MSSQL Server 和 Oracle 中的锁定/阻塞进行一些测试,我注意到一个区别:
在 Oracle 中 - 我在不发出提交或回滚的情况下对一行执行更新,在另一个会话中我可以查看底层记录,当然,我可以查看最后提交的数据,而不是尚未提交的值。
在 MSSQL Server 中 - 当我在另一个会话中执行相同的操作时,SQL Server 一直在等待正在更新的行的提交或回滚。
有人可以解释一下 MSSQL 服务器和 Oracle 之间的锁定机制。
将表格“展平”成单行的最佳方法是什么?
例如,使用下表:
+-----+-------+-------------+------------------+
| Id | hProp | iDayOfMonth | dblTargetPercent |
+-----+-------+-------------+------------------+
| 117 | 10 | 5 | 0.1400 |
| 118 | 10 | 10 | 0.0500 |
| 119 | 10 | 15 | 0.0100 |
| 120 | 10 | 20 | 0.0100 |
+-----+-------+-------------+------------------+
Run Code Online (Sandbox Code Playgroud)
我想生成下表:
+-------+--------------+-------------------+--------------+-------------------+--------------+-------------------+--------------+-------------------+
| hProp | iDateTarget1 | dblPercentTarget1 | iDateTarget2 | dblPercentTarget2 | iDateTarget3 | dblPercentTarget3 | iDateTarget4 | dblPercentTarget4 |
+-------+--------------+-------------------+--------------+-------------------+--------------+-------------------+--------------+-------------------+
| 10 | 5 | 0.14 | 10 …Run Code Online (Sandbox Code Playgroud) 我知道这个问题已经被问过很多次了,也有答案,但是,我仍然需要更多关于这个主题的指导。
以下是来自 SSMS 的我的 CPU 的详细信息:
下面是数据库服务器任务管理器中的 CPU 选项卡:
我MAXDOP通过以下公式将 的设置保持在 2:
declare @hyperthreadingRatio bit
declare @logicalCPUs int
declare @HTEnabled int
declare @physicalCPU int
declare @SOCKET int
declare @logicalCPUPerNuma int
declare @NoOfNUMA int
declare @MaxDOP int
select @logicalCPUs = cpu_count -- [Logical CPU Count]
,@hyperthreadingRatio = hyperthread_ratio -- [Hyperthread Ratio]
,@physicalCPU = cpu_count / hyperthread_ratio -- [Physical CPU Count]
,@HTEnabled = case
when cpu_count > hyperthread_ratio
then 1
else 0
end -- HTEnabled
from sys.dm_os_sys_info
option (recompile);
select …Run Code Online (Sandbox Code Playgroud) 我知道有几个符号可以表达实体之间的基数。
但是在 ascii 中是否有一种实用的通用方法来表达基数?
示例:用户——组。一个用户可以有多个组,一个组可以有多个用户。
我看了这个页面:https : //en.wikipedia.org/wiki/Cardinality_(data_modeling)
例如:一对多的“订单” ?? “行项目”
以下是表示基数的一些图形方式:
https://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model#Cardinalities
表示基数的最常见方式是什么?
这个有标准/rfc吗?
我创建了一个测试帐户来检查权限。它当前具有 Northwind 数据库的 db_datareader、db_datawriter 和 db_ddladmin 角色。但是当它尝试在 Northwind 上创建新模式时,如果它尝试将 dbo 授权为模式所有者,则创建失败,这是怎么回事?
Version:
SQL Server Management Studio: 15.0.18183.0
Microsoft Analysis Services Client Tools: 15.0.1487.0
Microsoft Data Access Components (MDAC): 10.0.18362.1
Microsoft MSXML: 3.0 6.0
Microsoft Internet Explorer: 9.11.18362.0 Microsoft
.NET Framework: 4.0.30319.42000
Operating System: 10.0.18362
Run Code Online (Sandbox Code Playgroud) 我支持基于供应商的应用程序,它充满了块和死锁。死锁主要涉及两个或三个进程,但是我昨天注意到,它涉及 9 个 SPID。
有人可以帮助我理解这个死锁图和如何避免这种情况的解决方案。
<deadlock><victim-list><victimProcess id="process2ff017c28"/><victimProcess id="process2f1538108"/><victimProcess id="process2f618d088"/><victimProcess id="process2f6d828c8"/><victimProcess id="process2f6d83848"/><victimProcess id="process2da9b5468"/><victimProcess id="process2efac7468"/><victimProcess id="process2efac7848"/></victim-list><process-list><process id="process2ff017c28" taskpriority="0" logused="0" waitresource="OBJECT: 11:1142295129:0 " waittime="4412" ownerId="284194209" transactionname="implicit_transaction" lasttranstarted="2019-04-08T15:29:07.323" XDES="0x2a785f800" lockMode="IX" schedulerid="1" kpid="9052" status="suspended" spid="63" sbid="0" ecid="0" priority="0" trancount="2" lastbatchstarted="2019-04-08T15:30:58.733" lastbatchcompleted="2019-04-08T15:30:58.733" lastattention="1900-01-01T00:00:00.733" clientapp="jTDS" hostname="APPNAME" hostpid="123" loginname="IRB_APP_USER" isolationlevel="repeatable read (3)" xactid="284194209" currentdb="11" currentdbname="Database_Name" lockTimeout="4294967295" clientoption1="671088672" clientoption2="128058"><executionStack><frame procname="adhoc" line="1" stmtstart="46" stmtend="180" sqlhandle="0x02000000b6b6e728e6bf289c908196a1f4e56b8892a5eab10000000000000000000000000000000000000000">
unknown </frame></executionStack><inputbuf>
(@P0 bigint,@P1 bigint)update Table_Name set STATUS_ID= @P0 where id= @P1 </inputbuf></process><process id="process2f1538108" taskpriority="0" logused="0" waitresource="OBJECT: 11:1142295129:0 " waittime="4411" ownerId="284107628" transactionname="implicit_transaction" lasttranstarted="2019-04-08T15:24:11.843" XDES="0xdacf54e0" lockMode="IX" …Run Code Online (Sandbox Code Playgroud) 我最近看到一个奇怪的案例,但仍然不知道它背后的原因是什么。在我的一台开发服务器上,有两个 SQL 服务器实例正在运行——一个是默认的,另一个是 UAT 实例。
最近,我们对这两个实例的默认端口进行了更改,并将相同的内容传达给开发团队和其他利益相关者,以开始他们的更改并对其进行测试。为了不影响他们现有的应用程序,端口 1433 保持在默认实例上。因此,以下是要连接的服务器和端口的详细信息:
默认连接 --> Server_Name,35683
Named(SIT) 实例的连接 --> Server_Name\SIT,35685
两个实例都具有相似的数据库,但是由于它们指向不同的环境,因此数据集不同。
一位高级开发人员使用连接作为 Server_name\SIT,35683 意味着实例和端口不匹配。他正在使用 SIT 实例但是默认实例的端口,它将他连接到默认实例。
当我在他的办公桌前并且我们正在测试一些代码时发现了这一点,我注意到了这一点,因为我的更改没有反映在默认实例中,因为我在 SIT 实例中进行了更改。
有人可以解释这种行为以及如何解决这个问题吗?
sql-server ×8
oracle ×2
backup ×1
deadlock ×1
instance ×1
locking ×1
maxdop ×1
permissions ×1
pivot ×1
replication ×1
restore ×1
schema ×1
t-sql ×1
tcpip ×1
terminology ×1
users ×1