数据库管理员

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

1
列级安全
我需要一种隐藏表中特定列的解决方案。我们有些人需要针对此数据库(特别是其中一些带有机密信息的表)生成报告,但不允许查看薪水或ssn等项目。是否可以为用户过滤特定的列?

1
SQL Server 2008 R2安装程序客户端工具连接
在SQL Server 2008 R2安装过程中,我看到“客户端工具连接”和“客户端工具向后兼容性”安装选项的复选框。它说这些是客户端服务器通信的组件。谁能解释这些成分是什么?选择这些组件后,服务器上实际安装的是什么。

3
查询时SSRS是否锁定表?
我的高级DBA告诉我,默认情况下,SQL Query执行不会锁定该表。 我的SQL Server Reporting Services(SSRS)报告存在一些问题,似乎在锁定方面出现了一些问题并出现了一些错误。 我做了一些谷歌搜索,但没有找到任何东西。 SSRS报告是否锁定正在查询的表? 是否有任何MSDN文档专门记录此行为?


1
如何优化查询
我有一个与此类似的数据库结构, CREATE TABLE [dbo].[Dispatch]( [DispatchId] [int] NOT NULL, [ContractId] [int] NOT NULL, [DispatchDescription] [nvarchar](50) NOT NULL, CONSTRAINT [PK_Dispatch] PRIMARY KEY CLUSTERED ( [DispatchId] ASC, [ContractId] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO CREATE TABLE …


1
Amazon RDS MySQL 5.5 Innodb Lock超过等待超时
自从移至Amazon RDS以来,我们就遇到了一些非常疯狂的性能问题,而今天我们开始遇到锁定问题。因此,我认为这只是超时问题,因此检查了我们使用的内存。我们交换了大约70MB的内存。我用mysqltuner进行了一次内存巫婆搜索,它说最大可能的内存使用率为400%。现在,由于Percona的配置向导,我将其降低到100%以上。 但是,我们仍然存在此锁定问题,因此我假设它与内存/交换无关。为什么我仍然收到停工通知?这里发生了什么? 我相信重新启动可以解决问题,但这不应该是解决方案。将来我们可以做些什么来防止这种情况发生?我尝试刷新查询缓存和表-起作用了。 多亏了RDS:/ 我可以提供以下大量信息: 查询 INSERT INTO `myTable` (`firstName`, `lastName`, `email`) VALUES ('Travis', 'B...', '...@gmail.com') 错误信息 Lock wait timeout exceeded; try restarting transaction 表架构 CREATE TABLE IF NOT EXISTS `myTable` ( `id` int(15) NOT NULL AUTO_INCREMENT, `firstName` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `lastName` varchar(255) COLLATE utf8_unicode_ci NOT NULL, …

1
OPTION FORCE ORDER提高性能,直到删除行
我有一个稍微复杂的SQL Server 2008查询(大约200行相当密集的SQL),但没有按照我的需要执行。随着时间的流逝,性能从大约0.5秒下降到大约2秒。 看一下执行计划,很明显,通过重新排序联接,可以提高性能。我做到了,而且做到了……下降到约0.3秒。现在,该查询具有“ OPTION FORCE ORDER”提示,并且生活很顺利。 今天,我来了,清理数据库。我存档了大约20%的行,除了删除行外,在相关数据库中不执行任何操作...执行计划的执行总数为软管。它会完全判断某些子树将返回多少行,并且(例如)替换为: <Hash> 与 <NestedLoops Optimized='false' WithUnorderedPrefetch='true'> 现在,查询时间从大约0.3秒增加到大约18秒。(!)只是因为我删除了行。如果删除查询提示,我将返回大约2秒的查询时间。更好,但是更糟。 将数据库还原到多个位置和服务器后,我重现了该问题。简单地从每个表中删除大约20%的行总是会导致此问题。 对于强制联接顺序来说,使查询估计完全不准确(从而使查询时间无法预测)是否正常? 我应该只是希望我要么必须接受次优的查询性能,要么像鹰一样看着它并经常手动编辑查询提示?还是暗示每个联接?.3s至2s是一个很大的选择。 很明显,为什么优化器在删除行后就炸毁了?例如,“是的,它进行了一次样本扫描,并且由于我在数据历史记录中较早地归档了大多数行,因此样本产生了稀疏的结果,因此它低估了对排序后的哈希操作的需要”? 如果您想查看执行计划,请建议一个可以张贴它们的位置。否则,我将采样最惊人的部分。这是基本的错误估计,paren中的数字是(估计:实际)行。 / Clustered Index Scan (908:7229) Nested Loops (Inner Join) --< \ NonClustered Index Seek (1:7229) 请注意,内部循环应扫描908行,但扫描52,258,441。如果准确,则此分支将运行约2毫秒,而不是12秒。在删除行之前,此内部联接估计值的总和仅为2,并且对两个聚簇索引进行哈希匹配。

1
用户“ NT AUTHORITY \ ANONYMOUS LOGON”的登录失败。(MsDtsSrvr)
我有一个集群环境,其中有很多实例。我已经修改了xml文件,以允许多个实例使用ssis。当实例与群集ssis在同一节点上时,一切工作都很好。但是,如果它们位于不同的节点上,则似乎存在无法修复的问题,并且丢失了我的凭据。由于某些原因,它尝试改用匿名登录。这是完整的错误: SSIS服务配置中指定的SQL服务器不存在或不可用。当计算机上没有默认的SQL Server实例时,可能会发生这种情况。有关更多信息,请参见Server 2005联机丛书中的主题“配置Integration Services服务”。 用户“ NT AUTHORITY \ ANONYMOUS LOGON”的登录失败。(MsDtsSrvr) 我会很感激任何人在这个问题上的帮助。 谢谢,

1
断电-查询完成了吗?
有没有办法检查查询是否完成?上周我出门度假时,我运行了3个运行时间很长的更新查询(每个+/- 25小时)。不幸的是,在一周中的某个地方,电源关闭了,运行MYSQL的计算机关闭了。有没有一种方法可以检查并查看3个(或全部三个)查询中的哪一个已完成? 我知道我可以检查数据是否已更新,但是如果正确且完整地执行了NULL,则应该仔细研究,并且有4,800万行数据需要仔细研究。有什么想法吗?
9 mysql 


1
sp_execute期望类型为'int'的参数'@handle'
我正在尝试检查存储过程,如果我的目标数据库中存在表。如果没有,那么我将使用源数据库中的information_schema表创建表。但是,当我使用sp_execute尝试并返回表(如果该表存在)时,会收到错误消息,过程期望类型为'int'的参数'@handle'。 我没有使用@handle参数。有人可以告诉我这个错误是什么意思,为什么我会收到它?我的代码的相关部分如下。 DECLARE @SQL NVARCHAR(MAX), @Parameters NVARCHAR(4000), @TableNotExists INT, @SourceTable NVARCHAR(200), @DestDB NVARCHAR(200) BEGIN SET @SourceTable = 'table' SET @DestDB = 'database' SET @Parameters = N'@SourceTableIN NVARCHAR(200), @TableNotExistsOut INT OUTPUT' SET @SQL = N'USE [' + @DestDB + '] IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = ''BASE …

2
SQL Server“创建数据库”语句。如何继承自动增长设置?
我正在使用SQL Server 2008 R2,并通过连续部署来创建数据库。 在我们的系统中,SQL Server中的默认1Mb / 10%自动增长设置无法很好地处理我们的数据。特别是因为我们有一个遗留应用程序,使我们无法太多更改架构。我们希望在实例级别配置数据库设置,以便我们可以针对分阶段部署进行更改。 我已经在几个地方阅读过,新数据库的默认设置基于'model'的设置,但是看来这只能通过单击SQL Management Studio UI中的新数据库来实现,而不是通过脚本(例如CREATE DATABASE [MyDb])来实现。 msdn.microsoft.com/zh-CN/library/ms186388(v=sql.105).aspx sqlservercentral.com/Forums/Topic1065073-391-1.aspx /programming/8828557/possible-to-configure-database-autogrowth-settings-at-the-instance-level/8828604#comment15586568_8828604 有人真的可以使用它来创建脚本吗?还有其他方法可以为每个服务器实例设置自动增长吗?

3
我可以依靠在SQL中首先执行的函数吗
请考虑以下脚本: create or replace function f(p_limit in integer) return integer as begin set_global_context ('limit', p_limit); return p_limit; end; / create view v as select level as val from dual connect by level<=sys_context('global_context','limit'); select f(2), v.* from v; /* F(2) VAL ---------------------- ---------------------- 2 1 2 2 */ select f(4), v.* …
9 oracle 

3
SQL Server 2012 Standard Edition-多个实例和内存利用率
如果我们在一台具有192 GB RAM的服务器上有多个SQL Server 2012 Standard Edition实例(内存限制为64 GB),那么两个实例只能访问前64 GB的内存,还是可以访问其他实例?部分内存,以便它们每个都可以拥有自己的64 GB“块”。 如果两个节点都故障转移到单个节点,则这是针对主动/主动群集的考虑因素。

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.