数据库管理员

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

1
单排表的术语?
是否有一个特定的术语来描述基数为1的关系? 我特别考虑的是RDBMS“特殊”单行表,例如DUAL(Oracle),SYSIBM.SYSDUMMY1(DB2,Derby)和RDB$DATABASE(Interbase,Firebird)。

5
高并发,高写入DB的基础结构
我的要求是: 3000个连接 70-85%写入与读取 目前,我们正在通过700个连接最大化高CPU超大型实例。所有8个内核均已最大化。我们认为这是并发连接数,因为内存很好。写入本身非常简单(验证很慢)。要扩展到3000,我们需要转到多台服务器,当前选项为: MySQL分片 MongoDB集群 卡桑德拉 Hadoop和MySQL(Hadoop缓存,一次转储到MySQL) MongoDB和MySQL(代替Hadoop,我们使用mongo进行缓存) 要处理此数量的连接,有几个问题: MySQL分片可以处理并发连接吗? 任何一个主服务器都可以处理这些并发连接,还是像Mongo这样的多头设备是更好的选择? 如果不能很好地描述我的问题,我深表歉意。请问问题。

4
SQL大表设计
我对SQL Server 2008表设计有一个一般性问题。我们目前有一张桌子,容量超过600GB,每天增长约3GB。该表具有适当的索引,但由于其大小而在运行查询时正成为主要的挂断。问题是我应该按年和月将表拆分为多个表(这将适合其他部门如何拆分其大数据集),还是应该利用SQL Server内置的分区。看来使用分区将需要较少的代码更改。从我在分区时读取的内容来看,您仍然仅查询一张表,服务器处理如何获取数据。如果我们使用多表路由,则必须处理从多个表中提取数据。

6
您能举一个商业智能的例子吗?
我真的不了解商务智能的全部含义。如果我从拥有公司数据库开始,那么BI人员会做什么?我在网上发现了很多资料,但这通常太复杂了。我想要一个简单的示例,该示例将使我理解BI的全部含义,以及BI人员将产生的对我的组织有价值的东西。

4
平行计划中不正确的“实际”行计数
这是一个纯粹的学术问题,在很大程度上并没有引起问题,我只是想听听对此行为的任何解释。 取得标准的Itzik Ben-Gan交叉联接CTE理货表: USE [master] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE FUNCTION [dbo].[TallyTable] ( @N INT ) RETURNS TABLE WITH SCHEMABINDING AS RETURN ( WITH E1(N) AS ( SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 …
17 sql-server 



3
有没有办法在postgres中访问其他会话的临时表?
我正在使用Windows应用程序,该应用程序使用(本地)postgres数据库并将一些信息存储在临时表中。我想看一下临时表,但是pgadmin和dbVis告诉我:ERROR: cannot access temporary tables of other sessions尝试查询数据时。我尝试更改模式和表的权限,但这似乎无济于事,即使我使用与程序本身相同的用户访问数据库(至少在dbVis中也是如此)。我是否可以在数据库中更改设置,以使我能够“ root”访问数据库中的所有会话?

1
PostgreSQL如何在启用WAL的备份中间处理检查点?
在PostgreSQL v9.0上,我正在使用WAL归档系统。因此,WAL会定期存档(创建3个WAL或WAL早于15分钟时)。 现在,我添加了PG_DATA目录的二进制压缩包(不包括pg_xlog子目录)。为此,我执行一个pg_start_backup(),二进制副本和一个pg_stop_backup()。 我想我很了解pg_start_backup和pg_stop_backup在做什么,第一个做一个检查点,最后一个确保最后一个WAL文件被存档。 从官方文档中我们可以看到,对于二进制数据副本,我们应该: 使用任何方便的文件系统备份工具(例如tar或cpio(而不是pg_dump或pg_dumpall))执行备份。在执行此操作时,既没有必要也不希望停止数据库的正常运行。 所以我很困惑。这意味着在我们复制时可以执行检查点。我看到了很多文档,说明执行复制时copy命令应该允许更改数据,我很确定,只是找到合适的工具。但是我的问题是postgreSQL将如何使用包含某些不一致文件的pg_data内容来处理恢复(某些来自检查点之前,某些来自之后)? 通过重播事务日志,PostgreSQL可以将所有这些文件置于正确的状态吗?我看到执行备份时创建表和删除操作很危险,不存在诸如真空之类的危险操作命令之吗?pg_backup是否暂停真空操作?我是否应该在二进制复制过程开始的最后复制global / pg_control文件?我是否应该使用启用了快照的文件系统(如xfs-freeze)来加快恢复过程? 我看到备份脚本崩溃不会自动启动pg_stop_backup,所以我的备份状态可能存在很长一段时间(直到我的nagios环某人修复pg_stop_backup()为止)。因此,如果这两个命令在PostgreSQL中有什么不同,我想知道,以了解它可能产生的影响。 请赐教。

4
当源数据库以UTF8编码时,如何解决还原时UTF8无效字节序列复制错误?
我获得了将PostgreSQL 8.2.x数据库迁移到另一台服务器的任务。为此,我使用的是pgAdmin 1.12.2(顺便说一句在Ubuntu 11.04上),并使用通过自定义/压缩格式(.backup)和UTF8编码进行的备份和还原。 原始数据库位于UTF8中,如下所示: -- Database: favela -- DROP DATABASE favela; CREATE DATABASE favela WITH OWNER = favela ENCODING = 'UTF8' TABLESPACE = favela CONNECTION LIMIT = -1; 我正在目标服务器上完全像这样创建此数据库。但是,当我使用Restore选项从.backup文件还原数据库时,它给了我一些错误: pg_restore: restoring data for table "arena" pg_restore: [archiver (db)] Error while PROCESSING TOC: pg_restore: [archiver (db)] Error from TOC entry …

3
通过存储过程模拟TSQL序列
我需要创建一个模拟TSQL序列的存储过程。就是说,它总是在每次调用时提供递增的不同整数值。另外,如果传入一个整数,则在没有结果大于或没有下一个最大整数的情况下,应返回该值。不用说可以有多个客户端同时调用此SP。 给定具有列MetaKey varchar(max)和MeatValueLong bigInt的表MetaInfo。预期MetaKey为“ Internal-ID-Last”的行将包含分配的最后一个最大值。我创建了以下存储过程: CREATE PROCEDURE [dbo].[uspGetNextID] ( @inID bigInt ) AS BEGIN SET NOCOUNT ON; BEGIN TRANSACTION UPDATE MetaInfo WITH (ROWLOCK) SET MetaValueLong = CASE WHEN ISNULL(MetaValueLong,0) > @inID THEN MetaValueLong+1 ELSE @inID+1 END WHERE MetaKey = 'Internal-ID-Last' SELECT MetaValueLong FROM MetaInfo WHERE MetaKey = 'Internal-ID-Last' COMMIT TRANSACTION …

3
是否可以通过更新分区键在分区之间移动行?
我认为这将是一个相当简单的问题,但实际上,我很难找到答案。 问题:您是否可以通过简单地更新分区列使其越过分区边界,将分区表中的数据行从一个分区移至另一个分区? 例如,如果我有一个带有分区键的表: CREATE TABLE SampleTable ( SampleID INT PRIMARY KEY, SampleResults VARCHAR(100) NOT NULL, ) 使用映射到主键的分区功能: CREATE PARTITION FUNCTION MyPartitionFunc (INT) AS RANGE LEFT FOR VALUES (10000, 20000); 是否可以通过将SampleID从1更改为(例如)500,000,将行从第一分区移动到第三分区? 注意:我将其标记为sql server 2005和2008,因为它们都支持分区。他们有不同的处理方式吗?

3
如何保证SQL Server 2008 R2的插入内容首先缓存在RAM中?
想象一下一个“突发”的数据流,即可能有10,000个事件很快到达,随后一分钟什么也没到达。 您的专家建议:如何编写SQL Server的C#插入代码,以确保SQL立即将所有内容缓存在其自己的RAM中,而不会阻塞我的应用程序,而不会超出将数据馈入所述RAM所需的时间?为此,您是否知道用于设置SQL Server本身的任何模式,或者用于设置我要写入的单个SQL表的模式? 当然,我可以做自己的版本,这涉及在RAM中构造自己的队列-但我不想重塑旧石器时代的石斧。


2
杀死所有查询-MySQL
有时在SNAFU中,我必须跑kill query xxxxxxx20或30次。kill all我缺少任何命令吗? 由于我不喜欢打字。
17 mysql 

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.