数据库管理员

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

2
存储XML数据的数据类型:VARCHAR(MAX)或XML
我正在使用SQL Server 2008为一组新资源定义一个架构...在这种情况下,每个记录(例如row)将需要存储XML片段。不时 尽管不经常 我将需要查询XML以查找元素和属性值。如果任由我自己设计,尽管倾向于让我相信这是有问题的,但我倾向于使用xml数据类型。这使我想到了我的问题。 在这种情况下,尝试决定将XML存储在xml列与varchar(MAX)列之间时,应该考虑哪些因素 如果有帮助,这里有一些其他详细信息: 对于这些片段(例如XSD的)使用架构的决定尚未决定 碎片的大小范围从小到很大 所有XML的格式都正确 在一天的过程中,需要大约3个月的时间,通过在线查询支持收集多达10,000个碎片 对XML的查询将全天进行,但是很少会出现这种类型的并发查询。

2
SQL Server事务超时
SQL Server 2008 R2中是否有办法导致涉及事务的数据库修改超时?在一种情况下,我们的应用程序代码会挂起或引发异常,并且无法执行回滚或提交。然后,这导致其他会话挂起,等待事务完成。

1
客户端超时,而MySQL查询仍在运行?
我们遇到了一个问题,其中一个只读查询通过MySQL工作台运行,从用户的UI角度来看已超时,并一直在服务器上运行(并且显然消耗了越来越多的资源),直到出现中断为止。 问题 有没有一种标准的方法来处理MySQL中的此类问题? 是否有我们需要避免的根本原因?


6
记录用于迁移的数据库映射的最佳方法
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为数据库管理员Stack Exchange 的主题。 5年前关闭。 我正在一个项目中,该项目包括用于迁移的映射数据库元素,我想知道其他人正在使用哪些工具来执行此操作? Excel是记录简单映射的一种非常灵活的方式,但是我想知道是否有人遵循他们所遵循的特定方法论或推荐使用的其他工具?

5
过度使用/正确使用模式?
在问了Stackoverflow 这个问题之后,我想知道我在哪里做的是正确/最佳实践。 基本上,我创建的每个对象都将进入一个架构,该架构名称反映了用法。例如,我有模式Audit和Admin(以及其他模式)。 反过来,这也不会留下任何对象dbo。这个可以吗?还有什么我需要做的吗?

3
EXPLAIN输出表明未使用我的索引
我只在done_status(done_status = INT)上设置了带有索引的表: 当我使用时: EXPLAIN SELECT * FROM reminder WHERE done_status=2 我回来了: id select_type表的类型possible_keys键key_len参考行额外 1 SIMPLE提醒ALL done_status NULL NULL NULL 5使用 但是当我发出以下命令时: EXPLAIN SELECT * FROM reminder WHERE done_status=1 我得到以下返回: id select_type表的类型possible_keys键key_len参考行额外 1 SIMPLE提醒参考ref done_status done_status 4 const 2 该EXPLAIN让我发现,它采用5行,第二次2行。 我认为索引没有被使用,如果我第一次正确地理解它,它应该给我3行。我做错了什么? SHOW INDEX FROM reminder: 表非唯一键名Seq_in_index列名归类基数子部分打包为空Index_type注释Index_comment 提醒1 done_status 1 done_status …
9 mysql 

1
应用规则后如何查看查询?
从文档 -37.3.1.1。“逐步的第一条规则” CREATE TABLE shoelace_log ( sl_name text, -- shoelace changed sl_avail integer, -- new available value log_who text, -- who did it log_when timestamp -- when ); CREATE RULE log_shoelace AS ON UPDATE TO shoelace_data WHERE NEW.sl_avail <> OLD.sl_avail DO INSERT INTO shoelace_log VALUES ( NEW.sl_name, NEW.sl_avail, current_user, current_timestamp …

2
监视每个数据库的MySQL活动?
监视服务器上每个数据库活动的最佳方法是什么? 我尝试了mtop / mytop,它实时显示活动,但是查看在其上执行的所有查询不是很实际。 我激活了MySQL日志,但是没有选择按数据库拆分它们。 您正在使用哪些工具来监视MySQL服务器?

3
需要帮助解决Sql Server 2005死锁方案
我遇到了一个死锁情况,死锁中唯一的参与者似乎是一个表和一个从该表中删除的存储过程。我根据以下几个死锁时对sql错误日志的分析得出了该结论,并使用下面的MSDN文章作为指导来解密错误日志中的跟踪。 表DEXTable和存储过程ClearDEXTableRows在下面定义。还有另一个存储过程InsertDEXTableRow将行插入DEXTable中,但是基于sql错误日志中的条目,该proc似乎不涉及死锁。 DEXTable具有〜830万行,并且趋于稳定增长。受访者表也很大,并且趋于稳定增长。 可从高流量网站访问该页面,该页面上的页面经常快速连续调用ClearDEXTableRows和InsertDEXTableRow。 在过去的10天里,僵局每天发生0到9次。 我已经为1222启用了SQL跟踪(使用DBCC TRACEON 1222),并且最近才启用了标志1204。在检测和结束死锁上有这些标志的输出的详细说明 我的问题是: 仅此一个存储过程ClearDEXTableRows是造成死锁的原因吗? 如果是这样,谁能提供一个很好的解释,说明如何发生并提出解决方法? 我的怀疑是DELETE语句导致DEXTable PK上的争用,而DEXTable则需要经常重建。 如果不是,我应该启用什么其他跟踪来更深入地了解死锁的原因?(我想在这里学习) -- Table definition CREATE TABLE [dbo].[DEXTable]( [ExportID] [int] NOT NULL, [RespondentID] [int] NOT NULL, [Exported] [datetime] NOT NULL, CONSTRAINT [PK_DEXTable] PRIMARY KEY CLUSTERED ( [ExportID] ASC, [RespondentID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY …

4
我如何知道哪个存储过程或触发器正在使用SQL Server 2008 R2上的表?
就是这种情况,在我正在检查的数据库中,有一个保存用户历史记录的存档表,并且有一个触发器或存储过程,在一段时间后,从该表中删除行,以避免该表过大。同样,我没有设计数据库,我只是在维护使用该数据库的应用程序,所以我不知道这些存储过程或触发器的名称,我要做的是找到该存储过程或触发,请检查代码并对其进行修改,以使此“用户历史记录”在表上保留的时间更长。 有人告诉我检查“ sysobjects”表,在那里我实际上可以看到具有相同名称的表,但这是我唯一能够检索到的信息,有什么建议吗? 谢谢。

4
Windows用户创建表时,SQL 2008 R2创建用户/架构
我们添加了服务器登录名和数据库用户,该用户使用以下脚本将Windows组映射到SQL 2008 R2实例,并更改了名称以实现匿名: USE master go CREATE LOGIN [DOMAIN\AppUsers] FROM WINDOWS WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english] go USE AppDb go CREATE USER [DOMAIN\AppUsers] FOR LOGIN [DOMAIN\AppUsers] go EXEC sp_addrolemember N'db_owner', N'DOMAIN\AppUsers' go 当DOMAIN \ User1帐户登录到应用程序时,User1可以在dbo模式中查询表,因为User1是DOMAIN \ AppUsers的成员,但是此应用程序也允许用户创建表。在不指定架构的情况下创建这些表时,SQL Server会执行以下操作: 在AppDb中创建一个“ DOMAIN \ User1”用户,该用户使用该实例的SSMS \ Security \ Logins中未列出的“ DOMAIN \ User1”登录名。 在AppDb中创建一个“ DOMAIN \ …

3
查询最佳匹配并排序
我正在尝试按照以下方式编写查询: select * from tbl where col1 = 1 and col2 = 2 and col3 = 3 order by ... ; 我首先要获得所有3个WHERE条件都匹配(3/3)的所有结果,然后要获得任何2个条件都匹配(2/3)的所有结果,最后要获得任何1个条件都匹配(1/3)的所有结果。 这3个结果集中的每个都需要按排序(col4, col5, col6)。 我可以在一个查询中做到吗? 例如: 样本http://img708.imageshack.us/img708/1646/sampletableresult1.jpg 创建测试数据的脚本: IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[MyTable]') AND type in (N'U')) DROP TABLE [dbo].[MyTable] GO CREATE TABLE dbo.MyTable …

2
如何使用UUID的默认值创建唯一列
我有一个供内部使用的键列,它只是一个递增的整数,但我想有第二个唯一列,它是UUID,但是我不知道如何为默认值调用一个函数(因此,SQL服务器正在创建UUID,而不是Java),是否有任何文档可以为此建议我?

2
如何断开客户端与MySQL的连接?
我需要一种有效的方法来从MySQL断开具有给定用户名的所有客户端的连接。我考虑过更改用户密码,但我认为只有在建立连接后才能检查。 有想法吗?
9 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.