我正在尝试为报告创建一个视图,以便我可以轻松跟踪我在服务器上安排的所有备份。所有这些备份都安排在维护计划的子计划中,因此作业名称都以“Backup.”开头。
我遇到的问题是,我希望能够轻松查看作业计划再次运行的时间以及计划的频率。sysschedules 表具有字段 freq_type 和 freq_interval。可以在此处找到它们的值的定义。正如您所看到的,由于缺乏更好的描述方式,这些字段是累积的。我不知道如何在基于集合的解决方案中进行设置,以便我可以看到当天的名称。
我希望能够看到诸如“每 3 天执行一次”或“每周一、二、五执行”之类的内容。
我怎样才能写这个,这样我就不会使用多层 case 语句来得到我想要的东西?
到目前为止,这是我的代码:
select
j.job_id,
j.name,
s.next_run_date,
s.next_run_time,
ss.*
from msdb.dbo.sysjobs j
left outer join msdb.dbo.sysjobschedules s
on j.job_id=s.job_id
left outer join msdb.dbo.sysschedules ss
on s.schedule_id=ss.schedule_id
where j.name like 'backup.%'
Run Code Online (Sandbox Code Playgroud) 嗨,最近在尝试修复我的 sql server 2008 R2 db 中的另一个错误时,我从 sysadmin 中删除了 BUILTIN\Administrators 登录。现在它不会让我更改数据库中的任何内容。此外,我没有 SA 帐户密码以该用户身份登录以更改/添加任何权限。
任何人都可以帮我将 BUILTIN\Administrators 登录添加回系统管理员或找到一种使用我的 Windows 帐户更改数据库的方法吗?
我们的 Active Directory 正在进行一些维护工作,我的主管问我 SQL Server 是否关心安全和服务帐户的位置。
我告诉他我认为没有,但我不是 100% 确定。
那么,对于用于控制对数据库的访问的服务帐户和安全组,SQL Server 是否关心它们在 Active Directory 中的位置?
我在 SQL Server 2008 服务器上设置了 SSAS 数据库。我为一组用户设置了一个角色,我希望能够访问该数据库中的多维数据集。无论它说什么,我都设置了“读取定义”和“读取访问”,但这似乎不起作用。
用户可以打开我之前设置的数据透视表,但不会显示任何时间,但维度数据会显示得很好(用户、部门等)。
然后我设置了一个个人用户并给了他们完全控制权(管理员),效果很好。我缺少什么可以让他们正确访问多维数据集?进程数据库?还有什么?
我有一个带有 where 子句的动态构建查询,如下所示:
where column in ('a', 'a', 'a', 'b')
实际数据要长很多,有很多重复项,如上面的示例中a重复了 3 次。
对于WHERE使用IN具有大量值(其中许多是重复值)的非常大的子句,是否存在潜在的性能影响?
performance sql-server t-sql sql-server-2016 query-performance
我在 SQL Server express 中有一个用于票务系统的数据库。我四处寻找并注意到很多索引的填充因子设置为 20。它设置为 20 有什么意义?你为什么要把它定得这么低?
我正在编写一份报告,该报告允许人们打印数据以进行物理签名。部分要求是以 DDMONYY (27Aug12) 格式格式化执行日期。我找不到在报告中设置日期格式的方法。
如何将报告执行时间格式化为 DDMONYY 格式?
我一直在运行公司购买的某些软件的服务器上进行一些维护,因此我无法真正更改查询的编写方式。我使用了一些工具来确定服务器上一些缺失的索引。但是,使用我的工具,我没有看到哪些查询指示了这些。但是,我确实会监视正在写入和读取的索引量。
所以,我的问题是,在添加已确定为缺失的新索引时,SQL Server 何时注意到新索引并确定它们是否真的有助于查询?是在创建索引后立即再次运行查询,还是更复杂?
performance sql-server execution-plan sql-server-2008-r2 index-tuning
我正在使用 SentryOne,并且我认为这是一个死锁过程。它显示的数据库 ID 为 32767,对象 ID 为 -710746692。我查看了 sys.databases 和 sys.objects 并没有找到任何关于这些的东西。我搜索了数据库 ID,并认为它是 sql server 拥有的隐藏资源数据库。但是,谷歌搜索没有返回任何对对象 id 有意义的内容。
什么是对象 ID -710746692?
在内部,SQL Server 如何确定select(*)? 堆和聚集索引之间有区别吗?是否能够使用聚集索引做一些聪明的事情而不必加载整个表?
今天我们遇到了一个奇怪的案例,一个执行“select * from table”的视图有几个日期时间字段作为整数返回。这在以前一直有效,直到最近。视图本身并没有强制这些列作为整数返回。
另一个奇怪的事情是重写视图以显式选择所有列会使数据作为日期时间返回。我在想这可能是某种糟糕的缓存计划,但我不确定。
数据错误回撤的罪魁祸首是什么?
我有一个非常高流量的数据库。在应用程序中,它们将发出删除操作,并且这些删除操作经常会与同一表上的其他删除操作发生死锁。我正在研究解决此问题的方法,我看到的一个答案是确保删除具有最快的记录路径。
目前,所有删除都遵循以下形式:
(@0 int) delete [dbo].[table] where (table_id = @0)
Run Code Online (Sandbox Code Playgroud)
这些表中的每一个在 上都有一个主键和聚集索引table_id。
我的问题是,添加非聚集索引是否table_id有助于加快这些删除并防止发生死锁?
死锁图:
<deadlock victim="process2b53a408c8"><process-list><process id="process2b53a408c8" taskpriority="0" logused="284" waitresource="KEY: 19:72057597368270848 (0e2c6d2527ac)" waittime="2034" ownerId="14899585071" transactionname="user_transaction" lasttranstarted="2018-03-07T09:47:18.833" XDES="0x50746b1c0" lockMode="S" schedulerid="7" kpid="967168" status="suspended" spid="185" sbid="2" ecid="0" priority="0" trancount="2" lastbatchstarted="2018-03-07T09:47:18.850" lastbatchcompleted="2018-03-07T09:47:18.850" lastattention="1900-01-01T00:00:00.850" clientapp="redacted_service" hostname="redacted_host" hostpid="164656" loginname="redacted_domain\_SQL_redacted_database_P" isolationlevel="read committed (2)" xactid="14899585071" currentdb="19" lockTimeout="4294967295" clientoption1="671088672" clientoption2="128056" databaseName="redacted_database"><executionStack><frame procname="adhoc" line="1" stmtstart="16" stmtend="120" sqlhandle="0x020000001335f1027371c186c8d7405191cdef00ddd0ebe70000000000000000000000000000000000000000">
unknown </frame><frame procname="unknown" line="1" sqlhandle="0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000">
unknown </frame></executionStack><inputbuf>
(@0 int)DELETE [dbo].[redacted_table]
WHERE ([id] = @0) </inputbuf></process><process id="process218b0a5468" taskpriority="0" …Run Code Online (Sandbox Code Playgroud) 我们已经在生产中遇到了几次问题,它看起来像一个存储过程获得了一个新的、糟糕的计划并开始造成严重破坏。不幸的是,在执行 dbcc freeproccache 之前,我们无法捕获之前和之后的计划以查看不良计划的情况,我们也没有设置查询存储。
我的问题是,什么会导致 sql server 为存储过程生成新计划?特别是对于一直运行的 sp。我知道的一些是:
sql-server ×10
index ×2
performance ×2
date-format ×1
deadlock ×1
fill-factor ×1
heap ×1
index-tuning ×1
permissions ×1
pivot ×1
security ×1
ssas ×1
ssrs-2008 ×1
t-sql ×1
view ×1