数据库管理员

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

1
优化SQL Server的最佳工具(不是查询,而是数据库本身)
有谁知道优化整个SQL Server数据库的最佳工具是什么? 我不是在谈论如何编写查询,而是在谈论如何管理数据库文件,索引,分页和碎片。 痛苦的真相 工具与DBA之间的永恒斗争仍然存在...但是我只是想了解产品发展之前的基本知识,然后我才可以聘请一个不精打采的DBA :-)

4
对于外键设计,增加ID与全文键的权衡是什么?
在许多关系数据库设计中,其他表中都有引用的字段。 例如,考虑具有唯一用户名的用户表和存储地址数据的第二个表。 我会说的一种可能的布局是常用方法,因为我在大多数软件中都观察到了这种布局,就是使用像这样的自动增量ID: Table users =========== userId int primary auto_increment userName varchar unique Table adressdata ========== userId int references users.userId adress_type varchar // for example country address_value varchar // for example US (you probably also want to put a unique key on (userId,adress_type)) 这就是我过去经常这样做的方式,也是我在大多数情况下所看到的方式。 另一种方法是: Table users =========== userName varchar …
8 mysql 

2
PostgreSQL:在同一查询中重用复杂的中间结果
使用PostgreSQL(8.4),我创建总结了几桌各种结果的视图(例如创建列a,b,c在视图中),然后我需要一些结果结合在同一个查询(例如a+b,a-b,(a+b)/c,...),以产生最终结果。我要注意的是,即使在同一查询中完成操作,每次使用时,中间结果都会被完全计算。 有没有一种方法可以对此进行优化,从而避免每次都计算相同的结果? 这是重现该问题的简化示例。 CREATE TABLE test1 ( id SERIAL PRIMARY KEY, log_timestamp TIMESTAMP NOT NULL ); CREATE TABLE test2 ( test1_id INTEGER NOT NULL REFERENCES test1(id), category VARCHAR(10) NOT NULL, col1 INTEGER, col2 INTEGER ); CREATE INDEX test_category_idx ON test2(category); -- Added after edit to this question CREATE INDEX test_id_idx …

2
无法删除SQL Server 2008 R2登录
几天前,我已经创建了一个SQL Server登录名。现在,我需要删除相同的内容。因此,我进入了SQL Server Management Studio =>安全=>登录名,并选择了要删除的登录名。它显示一条信息性消息,内容为 删除服务器登录名不会删除与登录名关联的数据库用户。要完成此过程,请删除每个数据库中的用户。可能有必要先将模式的所有权转让给新用户。 忽略此消息,当我确认删除过程时,出现致命错误,提示: 登录“ iis_login”的删除失败。(Microsoft.SqlServer.Smo) 执行Transact-SQL语句或批处理时发生异常。(Microsoft.SqlServer.ConnectionInfo) 此登录名是1个工作的所有者。您必须先删除或重新分配这些作业,然后才能删除登录名。(Microsoft SQL Server,错误:15170) 当登录拥有所有作业(根据以上消息)时,如何删除登录。 问候,尼尔文。

2
我可以使用事务日志来重建数据库吗?
我们似乎丢失了一些数据,而且似乎没有可靠的备份。我们确实有巨大的事务日志,并且有人认为我们也许可以使用这些日志来回到某个特定点。 是否可以使用事务日志来帮助重建数据库? SQL Server 2008 R2,顺便说一句。 (x从stackoverflow发布)


1
PostgreSQL中的模式概念
我无法理解PostgreSQL中模式的概念和用法。我不知道它如何影响我的数据库设计。我为什么要使用它? 如果我决定现在不考虑它们,以后再担心它们,将来会对我产生影响吗? 一个例子的解释会很好。


2
与DBA讨论服务器升级项目-常见问题
我更多地是网络/ Windows管理员,我的任务是监督SQL Server升级项目。我需要与DBA会面,并讨论他们的升级需求。我不想完全失明,所以我想我先问你们。我们正在从SQL Server 2008迁移到SQL Server 2008 R2,并可能在可能的情况下迁移到Windows Server 2008 R2。作为一名DBA,您对这种升级有何担忧?您想同时看到什么吗?


3
有没有简单的方法来触发单个镜像数据库的自动故障转移?
我在具有自动故障转移配置的高度安全的sqlserver2008-R2单个实例上拥有3个镜像数据库。有没有一种方法可以触发仅1个数据库的自动故障转移? 我想模拟数据库实际上无法访问的位置,而不仅仅是单击SSMS中的“故障转移”按钮。我可以将端点停止在主数据库上,但这会使所有3个数据库无法访问,因为它们使用相同的端点。 如何仅禁用1分贝?

3
NoSQL数据库会导致偶尔的数据丢失吗?
我目前正在评估要用于新项目的数据库,这将需要插入和查询大量交易数据。我们的团队倾向于Cassandra,但随后我阅读了这篇文章,似乎暗示使用不符合ACID的数据库可能会导致偶尔的数据丢失: http://www.dbms2.com/2010/09/21/acid-compatible-transaction-integrity/ 我在网络上找不到任何进一步的信息,也无法理解非ACID合规性意味着数据丢失的可能性。谁能阐明一些想法?
8 nosql 

3
使用Row_Number查找连续的行数
我有这列整数表示信号的出现,我试图添加一列来显示连续行的计数 如果我的数据看起来像这样 724 727 728 733 735 737 743 747 749 具有连续行计数列的结果数据将如下所示 724 1 727 1 728 2 729 3 735 1 737 1 743 1 744 2 748 1 我已经使用循环功能完成了此操作,但正在尝试使用cte进行查找。这是我最近尝试的一个示例 DECLARE @d TABLE ( signal INT ) INSERT INTO @d SELECT 724 UNION SELECT 727 UNION SELECT 728 UNION …

2
使用MyISAM和InnoDB引擎的数据库的一致逻辑备份
我对使用MyISAM和InnoDB的MySQL数据库的逻辑备份有疑问。 该mysqldump实用程序支持以下两个选项: --single-transaction-通过在单个事务中转储所有表来创建一致的快照。daccess-ods.un.org daccess-ods.un.org仅适用于存储在支持多版本的存储引擎中的表(当前仅InnoDB支持)。option自动关闭--lock-tables。 -x, --lock -all-tables-锁定所有数据库中的所有表。这可以通过在整个转储期间使用全局读锁定来实现。自动关闭--single-transaction和--lock-tables。 对于InnoDB,我们需要 --single-transaction 对于MyISAM,我们需要-锁定表或全部锁定表(以防需要跨数据库一致性)。 那么,应该如何备份混合数据库(同时使用MyISAM和InnoDB引擎的数据库)? 编辑: 为了澄清起见,可以将问题改写为: lock- [all-] tables选项是否可以保证InnoDB表的一致性备份?

5
简化/自动的数据文件可用磁盘空间回收
在Oracle 11g版本上: 谷歌搜索之后,我找不到删除表后回收可用空间的简单方法。 我已经找到了很多解释,说明数据文件是如何碎片化的,为了将“空空间”移动到数据文件末尾(逐表...,即使当您有200张桌子!?) 然后,您必须通过“猜测”可以减少的数据量来减少数据文件的大小,或者您必须确切地知道“块大小”是什么...最后,您不应该忘记“重建索引”。 参见例如:http : //asktom.oracle.com/pls/asktom/f?p=100 :11:0 ::::P11_QUESTION_ID : 54178027703899 和http://www.oracle-base.com/articles/misc/ReclaimingUnusedSpace.php 是否有一个简单的PL / SQL过程,在给定表空间名称或数据文件名称的情况下,该过程会完成该工作?还是任何类似的Oracle工具?

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.