数据库管理员

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

3
找出导致最大网络流量的查询
在生产型SQL Server上,我看到数据流量间歇性地急剧增加。高达200Mbit / s的速度导致NETWORK IO等待,进而导致查询超时。我如何找出哪些查询返回大结果集?
23 sql-server 

2
如何更改SQL Server Express 2008的实例名称?
此问题是从“服务器故障” 迁移而来的,因为可以在数据库管理员堆栈交换中回答。 迁移 7年前。 在开发计算机上,我已经安装了SQL Server Express 2008,但是它的实例名称为.\SQLEXPRESS。我希望它是默认实例。我很确定我在安装程序中选择了“默认实例”选项,但是显然它没有用。现在有什么办法可以更改实例名称? 添加: 看来这是安装程序中的已知错误。当PCU 1(PubliC Update)问世时,该问题将得到解决,但尚无法确定何时会发生。同时,有两种解决方法: 安装时,选择“命名实例”选项,然后输入MSSQLSERVER。 安装命名实例,然后安装另一个实例,这一次“默认实例”选项将起作用。 但是,问题仍然存在:是否可以在不重新安装实例的情况下重命名实例?因为安装过程很慢。XD

3
SQL Server在恢复中显示数据库
此问题是从Stack Overflow 迁移而来的,因为可以在Database Administrators Stack Exchange上回答。 迁移 7年前。 如今,电源故障后,一个数据库(恢复:完整)在SSMS中显示“正在恢复”。所以: myDatabase(恢复中)(数据库状态:恢复,关闭) 完成后,“恢复过程”数据库将显示名称myDatabase,而不显示“(恢复中)”。我以为问题已解决,但事实并非如此。 当我启动使用该数据库的应用程序时,额外的文本“(正在恢复)”再次出现在数据库名称旁边。 我一直等到“恢复过程”完成,然后将数据库脱机并恢复在线。 我重新启动服务器,重新启动计算机,当我的应用程序运行时,多余的文本再次出现。在SQL Server日志中,消息“正在启动数据库'myDatabase'”出现几次。该数据库似乎正在运行,因为我可以插入数据,但是状态表明发生了某些事情。 服务器日志未显示任何有趣的内容。唯一的异常是我有30条“正在启动数据库'myDatabase'”。 我知道服务器启动时,每个数据库在准备使用之前都要经过恢复。但是在我的情况下,数据库联机然后显示“ myDatabase(正在恢复)”。如果我关闭该应用程序,数据库将进入状态:正常。这真让我抓狂。 我什至安装了SQL Server的新实例,并将旧数据库“ myDatabase”放在上面。问题仍然存在。 当我运行此查询时: SELECT databasepropertyex('nyDatabase', 'STATUS') 它显示了正在恢复,在线,可疑以及返回到在线然后恢复等。

4
您计划进行数据迁移的工作流程是什么?
在软件开发工作的最后阶段,我被吸引了很多次,并被告知诸如“好吧,我们已经拥有了所有这些新代码,并且需要更改表和迁移数据”。 似乎每次都是一次性的,最好的猜测。我觉得这是我作为DBA的最薄弱的技能。 我想了解一些用于接近,管理和测试数据迁移的模式。 请为我提供一些最佳实践和/或在哪里可以获取学习材料的帮助,以帮助我在这一领域变得更好。

6
需要一本数据库设计书[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为数据库管理员Stack Exchange 的主题。 去年关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我正在设计一个数据库,并且我的表之间有这么多的关系,我需要一本非常好的数据库设计知识书。

3
如何在PostgreSQL 8.4中安装pgcrypto?
我正在使用Ubuntu Server 10.10,并且已使用安装了PostgreSQL 8.4 apt-get install postgresql。我想使用内置sha1()功能,但似乎必须先安装pgcrypto。但是我不知道如何安装。 没有pgcrypto,如果我尝试使用安装它apt-get install pgcrypto,我不找到以任何文件pgcrypto在我的系统(我想find / -name "pgcrypto*")。 如何安装pgcrypto,以便可以digest('word-to-hash','sha1')在数据库查询中使用该功能? 更新:我正在努力在另一台Ubuntu计算机上安装pgcrypto。使用sudo apt-get install postgresql-contrib-8.4如何安装软件包后,如何将其安装到当前的PostgreSQL数据库中?

4
检查约束不起作用?
我有下表。 create table test ( id smallint unsigned AUTO_INCREMENT, age tinyint not null, primary key(id), check (age<20) ); 问题在于该CHECK约束不适用于“年龄”列。例如,当我为年龄字段插入222时,MySQL接受它。
23 mysql  constraint 

5
将文章添加到事务发布中,而不会生成新快照
将SQL 2008 R2事务复制与请求订阅者一起使用时,添加文章时,我希望避免创建整个快照(数据库约为80 GB,因此需要花费数小时)。 从本文开始,我已经了解了如何通过关闭Instant_sync来使用部分快照来执行此操作,但这对我们不起作用。 理想情况下,我想将其作为数据库脚本的一部分来运行以创建表,因此,如果要复制它,可以这样做: Create Table ... sp_addArticle ... sp_PushThisToOurSubscribersNow

1
如何将SQL Server Unicode / NVARCHAR字符串设置为表情符号或补充字符?
我想根据其Unicode代码点将Unicode字符串变量设置为特定字符。 我想使用65535以上的代码点,但是SQL Server 2008 R2数据库的排序规则为SQL_Latin1_General_CP1_CI_AS。 根据Microsoft的NCHAR文档,该NCHAR函数采用一个整数,如下所示: integer_expression 当数据库的排序规则不包含补充字符(SC)标志时,这是一个从0到65535(0到0xFFFF)的正整数。如果指定的值超出此范围,则返回NULL。有关补充字符的更多信息,请参见排序规则和Unicode支持。 当数据库的排序规则支持补充字符(SC)标志时,这是一个从0到1114111(从0到0x10FFFF)的正整数。如果指定的值超出此范围,则返回NULL。 所以这段代码: SELECT NCHAR(128512); NULL在此数据库中返回。 我希望它返回与此相同的内容: SELECT N'😀'; 在排序规则“不包含补充字符(SC)标志”的数据库中,如何使用代码(不使用实际的表情符号字符)将Unicode字符串变量(例如nvarchar)设置为表情符号? 表情符号Unicode代码点的完整列表 (最终,我希望任何角色都能正常工作。为了方便参考,我只是选择了表情符号。) (尽管服务器是SQL Server 2008 R2,但我也对以后版本的任何解决方案感到好奇。) 假设没有办法,是否可以在另一个具有适当排序规则的数据库中引用内联用户定义函数? 如何找到带有“ supplementary character”标志的排序规则? 这不会在我们的服务器上返回任何记录: SELECT * FROM sys.fn_helpcollations() WHERE name LIKE 'SQL%[_]SC'; 似乎引入了SQL Server 2012 Latin1_General_100_CI_AS_SC可以正常工作。您可以在较旧的实例上安装排序规则吗? 整理参考: 在SQL Server中,char,nchar,varchar和nvarchar有什么区别? Microsoft的补充字符归类信息 Microsoft的SQL Server 2008 R2排序规则列表 是否有解释说明为什么SQL Server不管排序规则如何都可以理解和处理扩展字符(除了从角度来看之外)NCHAR?

1
为什么0等于空字符串?
我需要一些帮助来查找为什么以下T-SQL语句返回1(true): SELECT IIF( 0 = '', 1, 0) 我猜有人更改了ANSI选项SET ANSI_NULLS或其他导致行为的选项。 我的问题是我要加入一些值,而在最后一行中,我有由0和''值相连的值,这是不正确的。

2
Postgres多列到JSON
我正在运行PostgreSQL 9.3.4。我有一个包含3个字段的表格: id name addr --- ---- ---- 1 n1 ad1 2 n2 ad2 ... 我需要将数据移动到具有以下字段的新表中: id data --- ---- 1 {'name': 'n1', 'addr': 'ad1'} 2 {'name': 'n2', 'addr': 'ad2'} ... row_to_json对我来说不是解决方案,因为它也会SELECT t.id, row_to_json(t) as data FROM (select id, name, addr from myt) t增加id结果。有没有办法在我的数据字段中选择我需要的字段(名称和地址)?
23 postgresql  json  row 

3
在Postgres中替换实例化视图
我有一个物化视图Postgres 9.3,我想用新的列进行更新。但是,其他实例化视图也依赖于此视图,并且错误消息表明,当其他对象依赖该视图时,则无法删除该视图。 错误:无法删除实例化视图latest_charges,因为其他对象依赖它 从文档中还可以看出,REPLACE关键字对于实例化视图无效。除了删除所有依赖对象并重建每个依赖对象之外,还有没有捷径可走?

2
备份MySQL数据库的最佳做法
我最近发现,我们运行于MySQL的生产Web服务器没有得到定期(或根本没有)备份。我曾经备份过SQL Server数据库,但是对MySQL数据库却没有很多经验。是否有使用“ mysqldump”或任何其他数据库备份工具的最佳实践? 我可能会安排日程表,以便每晚进行,然后使用备份系统备份文件。 谢谢。
23 mysql  mysqldump 

4
要安全地重新启动承载Microsoft SQL Server的计算机,必须执行哪些步骤?
重新启动承载MS SQL Server实例的服务器时,是否有必要采取特殊步骤来防止数据损坏? 例如,最近我遇到了手动停止SQL服务的建议。我的理解是,这是由Windows shutdown进程处理的。 我敢肯定,就像我刚才提到的那样,每个人都可以推荐不计其数的步骤,但是我想避免重复过时或迷信的做法。是否有Microsoft的建议或广泛的行业标准? 此问题与重新启动计算机的短期过程有关。还有一个长期问题,那就是在永久性关闭机器之前,确保机器不被使用的长期程序。

3
如果一列存在,如何选择特定行;如果一列不存在,如何选择所有行
我正在编写一个脚本,该脚本获取一些表的行数,但是对于某些表,我只想获取设置了标志(在本例中为active = 1)的行数。有没有一种方法可以在一个查询中做到这一点? 例如: 表中users有一个称为活动的列 表clients没有称为活动的列 我想获得其中active = 1的用户数,而只是获得客户数。 在您说“只是硬编码”之前,这是一个查询,该查询正在python脚本内进行,该python脚本可以在许多不同的数据库上运行,并且我无法知道我的脚本将选择哪些表,以及它们是否具有名为的列active。我宁愿只有一个查询来完成所有操作,而不是两个单独的查询,并依靠mysql引发错误,所以我知道要使用另一个查询。
23 mysql  select  count 

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.