数据库管理员

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

4
如何将MySQL数据库移动到另一个驱动器?
我在本地计算机上使用MySQL 5.5来分析大量政府数据。我创建了一个本地数据库,该数据库位于默认驱动器(Win7 C:驱动器)上。我想将数据存储在E:驱动器(大型eSATA外部驱动器)上。 我应该采取什么步骤?
34 mysql 

2
使用XML阅读器优化计划
从此处执行查询以将死锁事件从默认扩展事件会话中拉出 SELECT CAST ( REPLACE ( REPLACE ( XEventData.XEvent.value ('(data/value)[1]', 'varchar(max)'), '<victim-list>', '<deadlock><victim-list>'), '<process-list>', '</victim-list><process-list>') AS XML) AS DeadlockGraph FROM (SELECT CAST (target_data AS XML) AS TargetData FROM sys.dm_xe_session_targets st JOIN sys.dm_xe_sessions s ON s.address = st.event_session_address WHERE [name] = 'system_health') AS Data CROSS APPLY TargetData.nodes ('//RingBufferTarget/event') AS XEventData (XEvent) …


4
LocalDB v14为mdf文件创建错误的路径
最近,我使用SQL Server Express安装程序和此指令将LocalDB从版本13升级到了版本14。。安装后,我停止了版本13的现有默认实例(MSSQLLOCALDB)并创建了一个新实例,该实例自动使用v14.0.1000服务器引擎。 我经常使用LocalDB进行数据库集成测试,即在我的xunit测试中,我创建一个(临时)数据库,该数据库在测试完成时将被删除。从新版本开始,很遗憾,由于以下错误消息,我的所有测试均失败: 尝试打开或创建物理文件'C:\ Users \ kepflDBd0811493e18b46febf980ffb8029482a.mdf'时,CREATE FILE遇到操作系统错误5(访问被拒绝。) 奇怪的是,mdf文件的目标路径不正确,C:\ Users \ kepfl和DBd0811493e18b46febf980ffb8029482a.mdf(这是单个测试的随机数据库名称)之间缺少反斜杠。通过简单的命令创建数据库CREATE DATABASE [databaseName]-这里没有什么特别的。 在SSMS中,我看到数据,日志和备份的目标位置如下: 但是,当我尝试更新位置时,出现另一条错误消息: 如何更新默认位置,以便LocalDB能够再次创建数据库?很明显,LocalDB没有正确组合默认位置目录和数据库文件名-是否有我可以编辑的注册表项?还是其他? 在道格的回答和坟墓的评论后更新 根据这个Stackoverflow问题,默认位置也应该可以通过注册表更改。但是,如果我尝试找到相应的键“ DefaultData”,“ DefaultLog”和“ BackupDirectory”,则无法在注册表中找到它们。SQL Server v14是否重命名了这些注册表项,还是将这些信息移出了注册表?

3
为什么SELECT查询会导致写入?
我注意到,在运行SQL Server 2016 SP1 CU6的服务器上,有时扩展事件会话会显示导致写入的SELECT查询。例如: 执行计划未显示任何明显的写入原因,例如哈希表,假脱机或可能溢出到TempDB的排序: 将变量分配给MAX类型或自动更新统计信息也可能导致这种情况,但在这种情况下,两者都不是导致写入的原因。 写的东西还有什么呢?

2
时间序列:SQL还是NoSQL?
我不在乎SQL和NoSQL之间的一般差异(或它们的传统差异)。 我目前正在研究更改内部时间序列的存储方式。它们都包含来自许多不同来源的财务数据。当前,我们将数据存储在专有数据库中。它非常类似于NoSQL,具有自己的查询语言。 我对社区的意见很感兴趣:您如何将数据存储在SQL数据库中?通过NoSQL使用SQL有什么优点,特别是针对时间序列?我为考虑将其存储在SQL中而疯狂吗? 我们的数据集包含数百万个时间序列,其中约10%包含数百万个记录。时间序列是按层次结构组织的:/ Market / Instrument / Value / Frequency,其中: 市场是证券交易所等,基本上是工具的集合,通常是类似的工具。 仪器是一种仪器。这可能是指标(布伦特原油),股票(GOOG)等 值是仪器的多种数据类型之一。可能是收盘价,高价,低价等 频率是特定时间序列值的频率。每周,每天,每月,滴答,任意等 数据如何存储在SQL数据库中?一张大桌子(可能被某些东西隔开),每个市场或工具一张桌子,每个时间序列一张桌子。 先感谢您。
33 nosql 



1
用于MongoDB的示例YAML配置文件?
在MongoDB的配置选项的文件列出了所有可以指定,但没有任何人有一组完全形成例如YAML格式的配置文件中各种角色的MongoDB实例的可用选项? 对于那些从头开始或希望测试最新配置文件格式的人来说,一组常见角色的示例将是一个非常有用的起点。
33 mongodb 

1
为BACKUP命令设置BUFFERCOUNT,BLOCKSIZE和MAXTRANSFERSIZE
我找了实际指导的设定值BUFFERCOUNT,BLOCKSIZE以及MAXTRANSFERSIZE该的BACKUP命令。我做了一些研究(见下文),做了一些测试,并且我完全意识到,任何真正有价值的答案都将以“嗯,这取决于……”开始。我对已经完成的测试以及在我发现的任何资源中显示的测试的担忧(请参见下面的方法)是测试是在真空中完成的,很可能是在没有其他负载的系统上进行的。 我对基于长期经验的这三个选项的正确指导/最佳实践感到好奇:数周或数月的许多数据点。我并没有在寻找特定的值,因为这主要是可用硬件的功能,但是我想知道: 各种硬件/负载因素如何影响应采取的措施。 在任何情况下都不应该覆盖这些值吗? 是否有一些陷阱可以覆盖所有这些并非立即显而易见的陷阱?占用过多的内存和/或磁盘I / O?还原操作复杂吗? 如果我有一台运行着多个SQL Server实例的服务器(一个默认实例和两个命名实例),并且如果我同时运行所有3个实例的备份,那么除了确保集合(BUFFERCOUNT* MAXTRANSFERSIZE)没有超过可用的RAM?可能的I / O争用? 在将三个实例放在一台服务器上并再次在所有三个实例上同时运行备份的相同场景中,在每个实例内同时运行多个数据库的备份又将如何影响这些值的设置?这意味着,如果三个实例中的每个实例每个都有100个数据库,则每个实例每个实例同时运行2或3个备份,这样就可以同时运行6到9个备份。(在这种情况下,我有许多中小型数据库,而不是几个大型数据库。) 到目前为止,我收集了以下内容: BLOCKSIZE: 支持的大小为512、1024、2048、4096、8192、16384、32768和65536(64 KB)字节。[1] 磁带设备的默认值为65536,否则为512 [1] 如果要备份要复制到CD-ROM并从CD-ROM还原的备份,请指定BLOCKSIZE = 2048 [1] 当您写入单个磁盘时,默认值为512就可以了。如果使用RAID阵列或SAN,则必须进行测试以查看默认值还是65536更好。[13(第18页)] 如果手动设置,则该值必须> =用于创建数据文件的块大小,否则将出现以下错误: 消息3272,级别16,状态0,第3行 'C:\ Program Files \ Microsoft SQL Server \ MSSQL11.MSSQLSERVER \ MSSQL \ Backup \ BackupTest.bak'设备的硬件扇区大小为4096,但是block size参数指定不兼容的覆盖值512。使用兼容的块大小重新发出该语句。 BUFFERCOUNT: 默认值[2],[8]: SQL Server 2005及更高版本: (NumberofBackupDevices * …

4
分配更多的CPU和RAM后,SQL Server的性能降低
我们在虚拟Windows 2008 R2服务器上运行SQL Server 2008 R2(10.50.1600)。将CPU从1核升级到4,将RAM从4 gb升级到10 gb后,我们注意到性能会变差。 我看到一些观察结果: 现在,运行时间少于5秒的查询现在耗时200秒以上。 使用sqlservr.exe作为罪魁祸首将CPU固定在100。 具有460万行的表上的select count(*)耗时90秒。 服务器上运行的进程没有更改。唯一的变化是增加了cpu和ram。 其他sql服务器具有静态分页文件,该服务器设置为可单独管理该文件。 有人遇到过这个问题吗? Per sp_BlitzErik,我跑了 EXEC dbo.sp_BlitzFirst @SinceStartup = 1; 给我这些结果。

2
在PostgreSQL中增量刷新子视图
是否可以在PostgreSQL中增量刷新实例化视图,即仅刷新新数据或已更改的数据? 考虑此表和实例化视图: CREATE TABLE graph ( xaxis integer NOT NULL, value integer NOT NULL, ); CREATE MATERIALIZED VIEW graph_avg AS SELECT xaxis, AVG(value) FROM graph GROUP BY xaxis 定期将新值添加到graph或更新现有值。我只想graph_avg每两个小时刷新一次已更新值的视图。但是在PostgreSQL 9.3中,整个表都被刷新了。这非常耗时。下一版本9.4允许CONCURRENT更新,但仍刷新整个视图。对于亿万行,这需要几分钟。 跟踪更新和新值并仅部分刷新视图的好方法是什么?

2
ISO周vs SQL Server周
好的,所以我有一个报告进行了本周与上周的比较,我们的客户注意到他们的数据“很笨拙”。经过进一步调查,我们发现按照ISO标准,它不能正确运行数周。我将此脚本作为测试用例运行。 SET DATEFIRST 1 SELECT DATEPART(WEEK, '3/26/13') , DATEPART(WEEK, '3/27/12') , DATEPART(WEEK, '3/20/12') , DATEPART(WEEK, '1/2/12') SELECT DATEPART(ISO_WEEK, '3/26/13') , DATEPART(ISO_WEEK, '3/27/12') , DATEPART(ISO_WEEK, '3/20/12') , DATEPART(ISO_WEEK, '1/2/12') 运行时,我得到了这些结果。 我认为这很特殊,因此我做了一些进一步的挖掘,发现SQL Server将1月1日视为一年的第一周,而ISO将1月的第一个星期日视为一年的第一周。 然后问题最终变成了两个方面。问题1这是为什么?问题2有什么方法可以更改此设置,因此我不必修改所有代码即可ISO_Week在任何地方使用?

3
包含的数据库有缺点吗?
SQL Server 2012引入了“包含”数据库的概念,其中数据库所需的所有内容(包括大部分内容)都包含在数据库本身中。在服务器之间移动数据库时,这提供了很大的优势。那么,我想知道在设计新数据库时这是否应该作为我的默认策略。 MSDN列出了所包含数据库的几个缺点,最大的缺点是缺少对更改跟踪和复制的支持。还有其他吗?如果我不打算使用这些功能,是否有任何理由不使用包含的数据库?

3
CPU性能与数据库服务器相关吗?
这是一个纯粹的理论问题。假设我有一个部署在多台服务器上的应用程序。 负载均衡器 多个/可扩展的应用程序服务器 一台(单个)数据库服务器(目前) 在前两个部分,我确实知道要寻找什么。但是数据库服务器呢?我应该寻找哪种硬件? CPU频率与数据库服务器相关吗? 多个核心CPU相关吗? RAM比CPU更重要吗? PS:假设所选数据库是MySQL或PostgreSQL。

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.