数据库管理员

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


6
SQL查询格式化程序
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为数据库管理员Stack Exchange 的主题。 5年前关闭。 是否有(基于Linux的)SQL查询格式化程序/插件/扩展? 我使用PostgreSQL和MySQL,但也欢迎使用其他数据库。 我可以使用VM进行测试,但希望使用基于Linux(Ubuntu)的解决方案。 我看到了在线版本,但没有可安装的版本。 基于Eclipse的IDE也是一个加号 例: select f1, f2, fname, lName from tblName where f1 = true and fname is not null order by lName asc 像 SELECT f1, f2, fname, lName FROM tblName WHERE f1 = true AND fname IS NOT NULL ORDER …
14 postgresql 

2
在PostgreSQL上进行流式复制和故障转移
我正在对PostgreSQL复制进行概念验证。在论坛上进行讨论后,我们决定选择流复制,因为与其他解决方案相比,它的性能很好。PostgreSQL没有为流复制提供自动故障转移。我们可以使用触发文件将从站切换为主站,但这是不可管理的。因此,我想要一个具有自动故障转移和高可用性的解决方案。 提供不同的解决方案: Repmgr Linux心跳 Pgpool-II(仅用于自动故障转移) 如果使用其他任何工具。 我的问题是应该使用哪种解决方案?

3
如何将mysql转换为postgresql?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为数据库管理员Stack Exchange 的主题。 5年前关闭。 我拼命寻找一个转换工具,将一个大的mysql数据库转换为postgresql。我需要的工具/脚本是: 自由 在Linux下工作 易于使用,不会出错 您实际上已尝试并确认有效 最好不要用Java或Ruby编写 我尝试了此处列出的其他工具,但没有一个适合我。 先感谢您。

3
以自动化方式编写Oracle DDL脚本
Oracle SQL Developer能够通过Tools -> Database Export...此方式导出DDL,效果很好,但是需要手动干预。 我知道DBMS_METADATA.get_ddl(),但是发现导出并不完美。我遇到的问题是,导出的DBMS_METADATADDL如果不首先解决诸如关键字中间的中断以及更糟糕的问题之类的问题就无法使用。但是,如果任何人都知道DMBS_METADATA可以通过导出导出DDL的方法而无需手动修复,那也将是一个很好的解决方案。 基本上,我正在寻找一种自动/可脚本化的方式来导出DDL ,该方式与通过手动方式导出的方式相同。 我怎样才能做到这一点?

2
在CREATE VIEW中使用WITH进行SQL处理
我想使用WITH子句创建VIEW,但实际上找不到正确语法的任何引用。 我想要这样 WITH TempTbl AS (SELECT ...) CREATE VIEW SomeView SELECT * FROM TempTbl 使用几个WITH子句的正确语法是什么? 在MSDN上没有任何用处:(
14 t-sql  view 

2
OracleBulkCopy专门做什么,如何优化其性能?
总结细节:我们需要将大约500万行转移到供应商(Oracle)数据库中。使用OracleBulkCopy(ODP.NET)批量处理50万行时一切都很好,但是当我们尝试扩展到5M时,一旦达到1M标记,性能就会开始缓慢爬行,随着更多行的加载,性能会逐渐变慢,最终3小时左右后超时。 我怀疑这是涉及到对表的主键,但我一直在用拖网捕信息的甲骨文论坛和堆栈溢出,很多东西我读的是相矛盾(也很多帖子似乎与对方) 。我希望有人能就与该流程密切相关的一些问题直接记录下来: 请问OracleBulkCopy类使用常规或直接路径加载?有什么方法可以确认这一点吗? 假设它确实使用直接路径加载:Oracle是否在加载期间自动将所有索引设置为不可用,然后将它们重新设置为联机,这是真的吗?我已经阅读了几篇有关此问题的声明,但同样无法确认。 如果#2是true,那么在启动批量复制操作之前,表上的索引应该有什么区别吗?如果是这样,为什么? 与#3相关,通常,在具有无法使用的索引的批量加载与在加载之前实际删除索引并在之后重新创建索引之间,是否有实际的区别? 如果#2 不正确,或者有一些我不了解的警告,那么在大容量加载之前显式使索引不可用,然后在之后显式重建索引 是否有任何区别? 除了索引构建以外,还有其他什么可能会导致随着添加越来越多的记录,批量复制操作的速度逐渐变慢?(也许与日志记录有关,尽管我希望不记录批量操作?) 如果除了先删除PK /索引外,实际上没有其他方法可以使性能降低,我可以采取哪些步骤来确保索引不会完全消失,即,如果与数据库的连接丢失了,过程的中间?
14 oracle  bulk 

4
一个大数据库与几个小数据库
我们有一种情况,我们可以(A)使用表前缀在一个MySQL数据库中部署应用程序实例,或者(B)对应用程序的每个实例使用不同的MySQL数据库,例如, 设置“ A”: central_database app1_table1 app1_table2 app1_tablen ... appn_table1 appn_table2 appn_tablen 最终结果是具有许多表的大型数据库。 设置“ B”: app1_db table1 table2 tablen ... appn_db table1 table2 tablen 最终结果是许多数据库带有某些表。 在所有条件都相同的情况下(例如,数据量,应用程序实例数等),采用这两种方法的利弊是什么?什么会对数据库性能和维护造成不利影响?该应用程序基于PHP 5,可在Apache 2.x上运行,而我们正在运行MySQL5.x。 非常感谢您的时间和想法!


3
什么是“异构查询”?
我收到有关我在程序中运行的SQL查询的以下错误消息。SQL Server 2005 T-SQL。 异构查询要求为连接设置ANSI_NULLS和ANSI_WARNINGS选项。这样可以确保一致的查询语义。启用这些选项,然后重新发出查询。(严重性16) 修复起来很容易,设置ANSI_NULLS和ANSI_WARNINGS ON,但是我想知道什么是异构查询。Google搜索带来了数十个结果,告诉我要设置ANSI_NULLS和ANSI_WARNINGS,而没有解释该术语的含义。查询是: UPDATE SRV.DB.DBO.TABLE SET Column= (SELECT Column FROM SRV1.DB.DBO.TABLE) 我在想这是由于在一个查询中连接到多个数据库引擎,否则我就再也没有收到这个错误。 在这种情况下,“异构”是否仅指查询两个不同的数据库引擎?

4
我应该花时间将列类型从CHAR(36)更改为UUID吗?
我的数据库中已经有几百万行。设计架构时,我不了解PostgreSQL UUID数据类型。 其中一张表具有1600万行(每个分片约350万至400万条记录),每天增长约50万条记录。如果需要,我仍然可以将生产系统停机几个小时。我将在一两个星期内没有这种奢侈。 我的问题是,这样做值得吗?我想知道JOIN的性能,磁盘空间的使用(完全gzip的转储为1.25 GiB),这种性质的事情。 表架构为: # \d twitter_interactions Table "public.twitter_interactions" Column | Type | Modifiers -------------------------+-----------------------------+----------- interaction_id | character(36) | not null status_text | character varying(1024) | not null screen_name | character varying(40) | not null twitter_user_id | bigint | replying_to_screen_name | character varying(40) | source | character varying(240) …
14 postgresql 

3
测试存储过程的可伸缩性
我有一个电子邮件应用程序,将在每个页面加载时调用该应用程序以将给定用户的新消息数传送到UI。我在数据库级别测试的东西有一些变体,但是所有这些都通过存储的proc调用抽象出来。 我试图猛击数据库以查看断点(每秒请求数)。 简而言之,我有一个表,如此userId,newMsgCount,以及对userId的聚集索引。SQL应该每秒能够处理数百或数千个此类响应。我认为落后者是我的.NET应用程序。 我怎样才能使它成为一个很好的测试,以基于SQL性能获得测试结果? 是否有为此工具,我可以为其提供存储的proc名称和参数以将其打包到数据库中? 我想看看数据库是否可以返回分钟。每秒250个响应。

3
为什么SSMS在表格顶部而不是底部插入新行?
每当我在SQL Server Management Studio 2008(数据库是SQL Server 2005)中的表中手动插入一行时,新行就会出现在列表的顶部而不是底部。我正在使用标识列,这会导致类似 id row 42 first row 1 second row 2 third row 当获取行且未明确对其进行排序时。当为Web应用程序获取行并更改TOP 1查询返回的内容时,这将导致外观不同。 我知道我可以order by,但是为什么会这样呢?我的大部分数据都是通过Web应用程序插入的,来自此应用程序的所有插入都将按照先进先出的顺序进行,例如最新插入在底部,因此id都排成一行。服务器或Management Studio中是否有某些设置会导致这种不正确的订购?

3
MySQL table_cache和Opened_tables
我已经看到人们使用Open_tables和Opened_tables的比较来评估table_cache在MySQL中是否太小。但是,我相信Opened_tables在正常运行时间内是累积的,因此这不是有效的比较。唯一需要注意的是,也许Opened_tables只会在未命中时发生碰撞-尽管即使每秒打开的表仍然很小,但逐渐增长它也不是问题。 如果将Open_tables与Opened_tables比较无效,是否还有另一种方法来获取测量数据? 这是在MySQL 5.0上,但也欢迎版本之间存在差异。

5
MySQL服务器已经消失,阻碍了大型转储的导入
我正在尝试将大型SQL转储(2GB)导入到我的Mac上的本地mysql中。我过去已经能够执行此操作(我正在使用MAMP),但是现在在第7758行出现ERROR 2006(HY000):每次尝试导入转储时,MySQL服务器都消失了。该数据库包含innodb表。 我尝试将my-innodb-heavy-4G.cnf文件复制到my.cnf中,以查看这些设置是否有帮助,但是没有运气。 有什么想法要调整吗? 我正在从此处使用“ Mac OS X版本10.6(x86,64位),DMG存档”:http : //dev.mysql.com/downloads/mysql/
14 mysql  innodb  dump  mac-os-x 

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.