数据库管理员

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

3
有没有办法找出谁更改了登录密码?
我试图找出谁更改了SQL Server 2008 R2中的登录密码。 我已经检查了默认跟踪-它不记录该事件。默认跟踪将包括以下与安全性有关的事件: /* Audit Add DB user event Audit Add login to server role event Audit Add Member to DB role event Audit Add Role event Audit Add login event Audit Backup/Restore event Audit Change Database owner Audit DBCC event Audit Database Scope GDR event (Grant, Deny, …

1
时间有效性和主/外键关系
我通读了一些有关时间有效性和时间特性的oracle教程。但是,在我阅读的示例中,演示表中没有使用主键。 http://docs.oracle.com/cd/E16655_01/appdev.121/e17620/adfns_design.htm#ADFNS1005 http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/12c/r1/ilm /temporal/temporal.html 是否应将主键添加到这些表?我之所以问是因为我想知道另一个表应该如何引用这些临时表之一。我可以将外键从一个时态表添加到另一个时态表吗? 如果我添加一个pk /外键关系,然后用pk更新表中的引用,则带有fk的表指向不再相关的记录.... 时间数据是否破坏了常规主键-外键关系?如果是这样,这对性能有何影响,我是否只将普通列用作“外键”并在查询中为参考时间段选择正确的列? 是否有人知道或有任何示例或教程可以轻松地显示具有正常或伪正常pk / fk用法的时间数据? 谢谢

1
如果在一个事务中对同一记录进行多次更新,那么将存储多少个版本?
根据Kimberly L. Tripp的MSDN文章,Neal Graves的“ 基于SQL Server 2005行版本控制的事务隔离 “ ... 特定记录的所有早期版本都链接在一个链表中;对于基于行版本控制的长期交易,每次访问都必须遍历该链接,以达到交易的一致版本行” 这在“了解行版本控制”部分中是通用的,可同时遵循“使用行版本控制提交的读取中的行版本控制”和“快照隔离中的行版本控制”部分。 此外,在仅通过SNAPSHOT中的多个事务(T1,T2,T3)对同一记录进行多次更新的情况下,给出了由于修改导致的行版本控制的示例。 如果只有一个事务多次(通过多个语句)更新一条记录,是否将存储(链接)多个版本存储,还是仅在拍摄SNAPSHOT“图像”时进行一个版本存储? 好吧,这个问题的答案应该立即回答我其他未解决的相关问题: 为什么行版本隔离使用记录版本的链接列表? RCSI使用的空间是否少于SNAPSHOT?为什么?

3
一两个索引?
我在数据库的表上创建了以下索引: CREATE INDEX [idx_index1] on [table1] (col1, col2, col3) 服务器建议以下“丢失”索引: CREATE INDEX [idx_index2] on [table1] (col1, col2) INCLUDE (col3, col4, col5, col6....) 在我看来,修改现有索引定义以包括建议的列,而不是创建需要维护的新索引,似乎是合乎逻辑的。在col1和col2上选择的查询可以与index2一样有效地使用index1。我是对的还是我可能错过了什么?

3
改善STIntersects的性能
表格T_PIN有300,000个图钉和T_POLYGON36,000个多边形。T_PIN具有此索引: CREATE SPATIAL INDEX [T_PIN_COORD] ON [dbo].[T_PIN] ( [Coord] )USING GEOGRAPHY_GRID WITH (GRIDS =(LEVEL_1 = HIGH,LEVEL_2 = HIGH,LEVEL_3 = HIGH,LEVEL_4 = HIGH), CELLS_PER_OBJECT = 128, PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]; T_POLYGON 有: …

3
错误:“要在sql服务器数据工具之外运行ssis软件包,必须安装Integration Services或更高版本的[发送成功的电子邮件]。”
注意,此标题的标题是该用户专有的逐字错误消息。该错误消息说明了dtexec应用程序中的错误,该错误将用户变量替换为错误消息字符串。在这种情况下,标准消息Standard E dition将替换为send successful email。 “标准”错误消息为: 说明:要在Business Intelligence Development Studio外部运行SSIS程序包,必须安装Integration Services的Standard Edition或更高版本。 版本SSIS2012。软件包最初是2005版本。打包在文件系统上。 主机1上的DB引擎/代理,主机2上的SSIS。 从主机2执行将成功运行。从主持人1执行将在问题主题中给出错误。看到了这篇文章,但是在主机1上安装了引擎和代理。有人看到过吗?搜索精确错误时,Google不会返回任何结果(主题行正确,错误消息中的措词不正确)。 谢谢!

5
释放未使用的空间SQL Server表
我在SQL Server 2012 Express中有一个表,其中有很多未使用的空间。 我需要释放数据库中的空间。 | NAME | 行| 保留 数据| INDEX_SIZE | 未使用 | ------------- | -------- | -------------- | ----------- --- | ------------ || -------------- | | MyTableName | 158890 | 8928296 KB | 5760944 KB | 2248 KB | 3165104 KB | 如何获得SQL释放3165104KB? 我已经尝试过: Alter table MyTableName …

2
MySQL连接到另一个表时不使用索引
我有两个表,第一个表包含CMS中的所有文章/博客文章。其中一些文章也可能出现在杂志上,在这种情况下,它们与另一个包含杂志特定信息的表具有外键关系。 这是这两个表的创建表语法的简化版本,其中删除了一些不必要的行: CREATE TABLE `base_article` ( `id` int(11) NOT NULL AUTO_INCREMENT, `date_published` datetime DEFAULT NULL, `title` varchar(255) NOT NULL, `description` text, `content` longtext, `is_published` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `base_article_date_published` (`date_published`), KEY `base_article_is_published` (`is_published`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; CREATE TABLE `mag_article` ( `basearticle_ptr_id` int(11) NOT NULL, …

5
如何从连接到同一工作组的其他计算机访问SQL Server数据库?
我创建了一个使用SQL Server数据库的C#应用​​程序。我有其他计算机连接到我,并且在工作组中彼此连接。我已经与他人共享了我的C#应用​​程序。当他们打开应用程序时,他们得到错误 建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问 但是该应用程序在我的PC上运行正常。我正在使用的连接字符串是 Data Source=ASHISHPC1\SQLEXPRESS;Initial Catalog=ACW;User ID=ash159;Password=ashish159 存储在.config文件中。 该应用程序在我的PC上运行正常。我必须做什么?我已经在服务器中启用了TCP / IP,但是相同的错误仍然存​​在。连接字符串有其他变化吗?

4
如何找到未使用的索引?
我正在数据仓库中工作。我有多达2亿条记录的表。其中一些表具有大约20多个索引(我无法提供为什么首先创建它们的原因)。这使维护这些索引的工作变得非常痛苦,并且直接影响了DWH导入工作的性能和运行时间。 如何找到每个表上使用最少的索引?(为了摆脱它们)
11 sql-server  ssms 

1
如何关联同一表中的两行
我有一个表,行可以相互关联,从逻辑上讲,两行之间的关系是双向的(基本上是无方向的)。(并且,如果您想知道,是的,这确实应该是一张表。这是逻辑实体/类型完全相同的两件事。)我可以想到几种方法来表示: 存储关系及其反向 以一种方式存储关系,以另一种方式限制数据库存储,并具有两个索引,它们的FK顺序相反(一个索引是PK索引) 以两种方式以一种方式存储关系,并允许以任何方式插入第二种方式(听起来有点讨厌,但是完整性) 创建某种分组表,并在原始表上添加一个FK。(提出了很多问题。分组表只能有一个数字;为什么还要有该表?使FK为NULL还是将具有单行的组关联起来?) 这些方式的主要利弊是什么,当然,有什么我没想到的方式吗? 这是一个可使用的SQLFiddle:http ://sqlfiddle.com/#!12/7ee1a/1/0 。(由于这是我正在使用的,所以它是PostgreSQL,但我认为这个问题不是非常特定于PostgreSQL的。)作为示例,它当前存储了关系及其反向关系。

2
SQL Server事务日志备份:测试尾日志是否紧随最近的已知日志备份
我们正在使用具有完全恢复模式的SQL Server。给定完整备份和一系列日志备份,我们希望能够检查从上次完整备份到当前尾日志的日志链是否完整。(实际上并没有还原这些备份;这里的目的是测试备份的一致性。) 我已经知道如何对现有备份执行此操作:使用RESTORE HEADERONLY,我可以获取每个文件的FirstLSN和LastLSN,可以对连续文件进行比较,以确定它们是否兼容。 但是,我不知道如何检查尾日志是否在上次日志备份之后。 如果我具有尾日志的FirstLSN,则可以将其与上一个日志备份的LastLSN进行比较。但是,如何获取尾部日志的FirstLSN? 我需要一个从SQL Server 2005向上运行的解决方案(最好使用t-sql)。到目前为止,我搜索Google均无济于事。顺便说一句。我首先将其发布在stackoverflow上。但是将其迁移到这里,因为它在此处被标记为脱位。 编辑 我在一个小示例(SQL Server 2005,9.0.5057)上尝试了两个提供的解决方案: BACKUP DATABASE TestDb TO DISK = 'C:\temp\backup test\Full.bak' -- fire some update queries BACKUP LOG TestDb TO DISK = 'C:\temp\backup test\Log1.bak' -- fire both queries from the provided answers: -- Martin Smith's answer yields: 838886656088920652852608 -- Shawn …

1
在PostgreSQL 8.4中执行触发功能需要哪些特权?
在PostgreSQL 8.4中执行触发功能需要哪些特权? 似乎为角色设置的特权与执行触发功能无关紧要。我想我已经看到有一天执行触发器功能所需的特权是EXECUTE特权,但对于表的所有者而言,而不是执行触发触发器的触发器的实际角色。 我找不到说明这一点的文档部分,有什么帮助吗?

1
如何在Postgres中获取窗口函数的集合?
我有一张表,其中包含两列整数数组的排列/组合,第三列包含一个值,如下所示: CREATE TABLE foo ( perm integer[] NOT NULL, combo integer[] NOT NULL, value numeric NOT NULL DEFAULT 0 ); INSERT INTO foo VALUES ( '{3,1,2}', '{1,2,3}', '1.1400' ), ( '{3,1,2}', '{1,2,3}', '0' ), ( '{3,1,2}', '{1,2,3}', '1.2680' ), ( '{3,1,2}', '{1,2,3}', '0' ), ( '{3,1,2}', '{1,2,3}', '1.2680' ), ( …

3
SQL Server 2008 R2的一般内存要求
我对DBA的工作没有经验,但是我正在尝试为SQL服务器请求更多资源,并希望我可以请一些聪明的人对应该运行的内容进行粗略的估计。我怀疑IT给生产sql服务器的资源分配很低。 硬件软件: 数据库:SQL Server 2008 R2企业数据库 Windows:Windows 2008 r2 Enterprise 64位,可以肯定在VMware上运行。 处理器:Intel(R)Xeon(R)CPU E7-4860 @ 2.27GHz 2.26 GHz(2个处理器) 安装的内存:4GB 数据库文件硬盘:300GB 备份硬盘:150GB 日志硬盘:100GB 应用: 我们有3个主要数据库,它们总共增加了大约170GB的数据,在同一服务器上的Reporting Services数据库(SSRS)可能每天存储10个不同的报告(每个报告平均包含70万条记录)。我们的用户群大约有20个同时用户,其中可能有5个被认为是“资源密集型”的,可以生成数据密集型大型报告。大多数用户通过asp.net网站和报表服务器网站与数据库进行交互。此外,我们的开发人员通过直接远程连接到服务器(最多2个远程连接),在BIDS中广泛使用SSIS。最后,我们有一个相当复杂的数据仓库操作,它可能每天也通过在服务器上运行的SSIS包带来300万条记录。 当前问题: 我们的服务器长期存在超时问题,对网站的响应时间非常糟糕。我怀疑我们拥有的内存量(4GB)可能是一个很大的瓶颈。我们先前对额外内存的请求已被拒绝,我们需要执行更多查询优化来获得共同的响应。虽然我们不是sql专家,也不是(我相信您可以通过我们的设置告诉您)db admin专家,但我想确保的是,如果硬件不是硬件,那么我不会花太多时间试图挤出一点潜在的性能瓶颈。 谢谢大家避免tl!dr!

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.