我有一个包含表的数据库,每个表都有作为主键列的自动增量 int 列。
当我对索引执行重建或重组操作时,这两个操作是否可能会更改此列的值?
如果索引是“聚集的”,这有关系吗?
我从 2008 年开始使用各种版本的 MS T-SQL。
每次通过 SSMS 工具连接到 SQL 服务器时,我都会遇到同样的问题。如果我一直在编写脚本并关闭我的笔记本电脑一段时间,当我回来并重新连接时,它无法识别我正在处理的数据库中的表。通常我必须右键单击表名并选择前 1000 行才能在缓存中记住它。这是一种解决方法,我知道我不需要做,因为我遗漏了一些东西或没有正确地做一些事情。
有小费吗?
我需要按月(和年)分组,我在想:
GROUP BY CAST(YEAR(tDate) AS NVARCHAR(4)) + '-' + CAST(MONTH(tDate) AS NVARCHAR(2))
Run Code Online (Sandbox Code Playgroud)
但是我在网上找到了类似的东西:
GROUP BY YEAR(tDate), Month(tDate)
Run Code Online (Sandbox Code Playgroud)
两者是等价的吗?用第二种比较好?
NEWSEQUENTIALID 在数据库中是唯一的吗?我们用 NEWSEQUENTIALID 在数据库中规划了许多表,同时插入并希望确保每个 guid 都是唯一的,无论它们是否在不同的表中。
常规 NEWID() 将保证数据库中的唯一性,并且有重复的机会是被小行星/闪电击中的机会,但是它们并不能缓解碎片问题。
这篇文章讨论了 Mac 地址,但是我想为上面特定的数据库指定问题。 /sf/ask/1988347511/
performance database-design sql-server sql-server-2016 performance-tuning
我正在查看 Microsoft SQL Server Management Studio v 17.9.1 中的实际执行计划,但我看不到很多与估计值进行比较的实际值。
例如,我们有一个连接器,其中包含以下数据:
我可以看到估计行和数据大小,但它们的实际大小在哪里?有没有办法查看这些信息?
实际 CPU、I/O、执行次数等的相同问题。
更新: MS SQL Server 2008 R2
我有这 3 个表:
构造函数员工
EID (员工 ID)作为主键和其他键。项目
PID 作为主键和其他键。项目建设者员工
PID并EID作为其他表的外键。每个ConstructorEmployee可以在几个Projects. 我需要创建一个触发器,如果项目已被删除,我需要删除所有ConstructorEmployee 该工作仅在这个项目上。我需要从ConstructorEmployee表中删除它们。
我正在研究 SQL Server 2017。
我有几个表,我试图将它们与以下查询结合起来。我正在使用以下表格:
LoanOrigination:这包含贷款特征,例如资产价值、贷款期限等。每笔贷款有一个独特的观察。该表在LOAN_ID、SUB_SAMPLE和上建立索引COLLATERAL_TYPE。LoanPerformance:这包含了所有贷款的表现LoanOrigination。每一行是一个独特的MONTHLY_REPORTING_PERIOD和LOAN_ID组合,并且该表已被索引两个。CollateralData:这包含基于COLLATERAL_TYPE. 这样做的目的是估计贷款对抵押品的当前价值。下面查询的目的是组合这些表,以便每一行都包含贷款特征以及当月和下个月的拖欠状态。但是,查询速度非常慢。有什么办法可以加快速度吗?
with
COLLATERAL_VALUES as (
select
COLLATERAL_TYPE,
dateadd( day, 1-day(AsOfDate), AsOfDate) as ASOFDATE,
Value as INDEX
from LoanData.CollateralData
),
SAMPLE_LOANS as (
select
a.*,
b.INDEX as INDEX_T0
from LoanData.LoanOrigination a
join COLLATERAL_VALUES b on b.ASOFDATE = a.ORIG_DATE and b.COLLATERAL_TYPE = a.COLLATERAL_TYPE
where SUB_SAMPLE = 0
),
LOAN_STATE as (
select
a.LOAN_ID,
MONTHLY_REPORTING_PERIOD AS CUR_DATE,
CURRENT_ACTUAL_UPB as CUR_UPB,
LOAN_AGE, …Run Code Online (Sandbox Code Playgroud) 我有几台服务器,我在 sql server 服务上看到一个蓝色的问号,如下图所示。
启用这些 Windows 防火墙规则对我有用
Windows 管理规范 (WMI-In)
Windows 管理规范 (DCOM-In)
有没有办法通过powershell实现这一目标?
sql-server powershell windows-server connectivity sql-server-2014
当 sp_BlitzIndex 做索引建议时,我脑子里的问题如下:
是的,建议的索引在执行 select 语句时会带来很多速度优势。但是这些索引还有另一个成本,即删除、插入、更新查询
sp_BlitzIndex 脚本是否也考虑了删除、插入、更新成本?还是仅评估 select 语句会带来多少速度优势?
此外,我如何通过 sp_BlitzIndex 列出坏索引?他们是如何确定坏的?
非常感谢您的回答
我想阻止用户更改 MS SQL Server 数据库中的某些列。我无法将该列锁定为 READ ONLY,因为对该列进行了更改。让我尽可能解释清楚。我们的 ERP 允许我通过用户的安全选项卡阻止某些字段/列。听起来很棒。但是,如果一个人使用 ODBC 或 DSN 连接,他们将能够更改数据。例如,我不希望用户能够更改客户订单表中的成本或任何财务内容,但对他更正不正确的地址或运输信息没有任何问题。如果我将表锁定为只读,那么使用 ERP 也会阻止该列。我希望我在这里说得通。谢谢!
sql-server ×10
performance ×3
ssms ×2
connectivity ×1
index ×1
locking ×1
optimization ×1
powershell ×1
primary-key ×1
trigger ×1