数据库管理员

希望提高数据库技能并向社区中的其他人学习的数据库专业人员的问答

7
列出给定角色的所有权限?
此问题是从Stack Overflow 迁移而来的,因为可以在Database Administrators Stack Exchange上回答。 迁移 6年前。 我到处搜索,还没有找到这个问题的最终答案。 我需要一个可以为关联角色提供所有权限的脚本。 有什么想法,甚至有可能吗? 这让我很接近-但我似乎无法将其翻转并给出角色而不是用户的摘要。 http://consultingblogs.emc.com/jamiethomson/archive/2007/02/09/SQL-Server-2005_3A00_-View-all-permissions--_2800_2_2900_.aspx WITH perms_cte as ( select USER_NAME(p.grantee_principal_id) AS principal_name, dp.principal_id, dp.type_desc AS principal_type_desc, p.class_desc, OBJECT_NAME(p.major_id) AS object_name, p.permission_name, p.state_desc AS permission_state_desc from sys.database_permissions p inner JOIN sys.database_principals dp on p.grantee_principal_id = dp.principal_id ) --role members SELECT rm.member_principal_name, rm.principal_type_desc, …

2
子查询的别名与主查询的别名相同
我有一个别名与其子查询别名相同的SQL查询。 例如: select * from ROOM r where ... ( select * from ROAD r where ... ) 这很好用,因为子查询的别名似乎隐藏了主查询的别名。 在所有情况下都可以那样工作吗? 我会得到不确定的结果吗? 如果可以的话,如何引用主查询r呢?



5
查询调优应该是主动还是被动?
作为软件开发人员和有抱负的DBA,我在设计SQL Server数据库时尝试结合最佳实践(我的软件有99%的时间位于SQL Server之上)。在开发之前和开发过程中,我会做出最好的设计。 但是,就像其他任何软件开发人员一样,这里添加了功能,错误以及对需求的更改,这些需求要求更改/创建的数据库对象。 我的问题是,查询调优应该是主动还是被动?换句话说,在对代码/数据库进行大量修改之后的几周内,我是否应该留出一天时间检查查询性能并据此进行调整?即使看起来运行正常吗? 还是我应该意识到,性能低于平均水平的应该是数据库检查并回到众所周知的黑板上? 查询调优可能会花费大量时间,并且取决于最初的数据库设计,它可能带来的收益很小。我对接受的作案手法感到好奇。

2
ON子句的位置实际上意味着什么?
普通JOIN ... ON ...语法是众所周知的。但是也可以将ON子句JOIN与其对应的子句分开放置。这是在实践中很少见到的东西,在教程中找不到,而且我还没有找到任何 Web资源甚至提到这是可能的。 这是一个可以使用的脚本: SELECT * INTO #widgets1 FROM (VALUES (1), (2), (3)) x(WidgetID) SELECT * INTO #widgets2 FROM (VALUES (1, 'SomeValue1'), (2, 'SomeValue2'), (3, 'SomeValue3')) x(WidgetID, SomeValue) SELECT * INTO #widgetProperties FROM (VALUES (1, 'a'), (1, 'b'), (2, 'a'), (2, 'b')) x(WidgetID, PropertyName) --q1 SELECT w1.WidgetID, w2.SomeValue, …
23 sql-server  t-sql 

2
如何还原“包含”数据库?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为数据库管理员Stack Exchange 的主题。 4年前关闭。 我最近尝试将网络实例的备份还原到本地开发SQL Server。令我惊讶的是,我收到以下错误消息: 消息12824,级别16,状态1,行3必须将sp_configure值“包含数据库身份验证”设置为1,才能还原包含的数据库。您可能需要使用RECONFIGURE来设置value_in_use。消息3013,级别16,状态1,第3行RESTORE DATABASE正在异常终止。 要成功还原数据库,必须遵循哪些步骤?

3
授予文件系统对SQLSERVERAGENT虚拟帐户的访问权限
我正在尝试NT Service\SQLSERVERAGENT根据此问题中的标记答案授予Windows帐户文件系统访问权限。我相信这是一个虚拟服务帐户,并且不会显示在控制面板->用户帐户区域中。 如何授予该服务帐户访问文件系统的权限?特别是在Windows 7上。 我已经阅读了几种方法,但似乎没有一种方法可供我选择。我尝试使用PowerShell方法,但是AD命令不是有效命令。我什至下载并安装了这些命令所需的Windows补丁。我还读到我应该能够通过SQL Server配置管理器或Management Studio来执行此操作。不过,我似乎无法弄清楚在何处调整这些权限。 SQL Server代理进程无法启动,并显示以下错误消息: Login failed for user 'NT SERVICE\SQLSERVERAGENT'. Reason: Failed to open the explicitly specified database 'msdb'. [CLIENT: <local machine>] 根据我的Google搜索,它与该帐户的权限有关。 我不确定数据库是否损坏,但是它表示数据库处于正常状态。SQL Server代理登录是sysadmin和public组的一部分。

2
从Postgres批量删除行的最有效方法
我想知道最有效的方法是从PostgreSQL删除大量行,这一过程每天都会是将数据批量导入(插入和删除的增量)到表中的一项重复任务。可能要删除数千行,甚至数百万行。 我有一个主键文件,每行一个。我所考虑的两个选项与以下内容类似,但我对PostgreSQL的内部知识了解不足/不了解,无法做出明智的决定,这是最佳选择。 DELETE使用简单WHERE的主键对文件中的每一行执行查询(或n使用IN()子句分批对删除进行分组) 使用COPY命令将主键导入到临时表中,然后使用连接从主表中删除 任何建议将不胜感激!

3
警告执行计划中缺少统计信息
我有一种我无法理解的情况。我的SQL Server执行计划告诉我,表上缺少统计信息,但是已经创建了统计信息: 但是,如果我们看一下表格,将会看到有一个自动创建的统计信息: 有人可以帮助您了解情况如何吗? 当前数据库上的Auto_Update和Auto_Create统计信息已打开。 我正在使用SQL Server 2014。


1
如何在MySQL中将多个字段设置为主键?
我有一张桌子 员工ID 等等 blahblah2 ..... 记录月 回顾年 因此,每个员工只应有一个匹配的条目来输入月,年,Emp#。如何设置表格。 那么,如何设置表以使EmployeeID可以每月更新一次,但永远不能在匹配的月份和年份中有两个条目?

3
“ SARGable”一词的真正含义是什么?
SQL Server用户使用术语“ sargable”。我想知道是否有一个客观的,与实现无关的永恒定义:“可精”。 例如,WHERE foo LIKE '%bar%'许多人说sargable不可靠,但是某些RDBMS 可以在此类查询上使用索引。那么“不可燃”是什么意思呢? 其他参考 是什么使SQL语句可存储?


1
为什么删除行时非聚集索引使用更多空间?
我有一张有75亿行和5个索引的大表。当我删除大约1000万行时,我注意到非聚集索引似乎增加了它们存储在页面上的数量。 我写了一个查询dm_db_partition_stats来报告页面中的差异(之后-之前): 索引1是聚集索引,索引2是主键。其他的则是非集群且非唯一的。 为什么这些非聚集索引上的页面增加? 我希望最坏的数字保持不变。 我确实看到性能计数器报告了删除期间页面拆分的增加。 删除时,幻像记录是否必须移至另一页?这和“唯一符”有关吗? 我们正处于推出RCSI的中间阶段,但是现在,RCSI已关闭。 它是可用性组中的主要节点。我知道快照以某种方式在次要上使用。如果这很有意义,我会感到惊讶。我计划对此进行深入研究(查看dbcc页面输出)以了解更多信息。希望有人看到过类似的内容。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.