数据库管理员

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

3
合并复制文章计数的硬限制?
有点背景。我们开发了一个使用合并复制的应用程序。目前,我们目前正在发布约212条文章,并且一切都很好,因为它似乎已落在256条以内。(在服务器上使用SQL Standard 2005,在订户级别上使用2005 Express。) 我们正在开发一个新版本,并从头开始构建一个新数据库,该数据库的最低系统要求为SQL 2008 R2 Standard服务器端和客户端的Express 2008 R2。对已发表文章的相同256个计数限制。(是的,我们还将支持2012年,但限制是一样的) 问题出在哪里,我们已经在哪里成功测试了新版本中超过400篇文章的发布,并且所有功能都进行了功能测试(发布创建,快照和订阅者创建以及复制本身)。是否有其他人之前超过了计数限制,这仅仅是一个建议的软限制?在发布创建或订户创建期间,我们都没有看到任何错误。 根据这篇文章:http : //msdn.microsoft.com/zh-cn/library/ms143432%28v=sql.105%29 我正在等待Microsoft的回电,但我想知道是否有人以前在任何SQL版本中都看到过此消息。

1
不论层次结构,MDX查询RANK
我希望将计算添加到我的SSAS多维数据集(SSAS 2012)中,以显示当前成员相对于该石斑鱼中所有其他成员的相对排名,而无需提前指定石斑鱼。 例如,假设我已经有一个计算,Efficiency其定义为$$ /小时。 我还想添加一个Efficiency Rank计算,该计算将告诉我当前成员在其中设置的相对位置。 我尝试过的语法是 RANK([Measures].[Efficiency].CurrentMember, [Measures].[Efficiency]) 我意识到这是不正确的。 我似乎在其他任何地方都找不到此指南,所以我希望为此制定一些最佳实践或模式,因为这似乎是相对普遍的业务需求。

1
从备份初始化事务复制
在设置要复制的发布时允许使用“从备份初始化”。我们已经创建复制数据库已有好几年了,并且始终从backkup进行初始化,但是从未设置过该标志(几天前我们才第一次注意到它)。复制当然一直都没有问题。 我发现有很多命中说明需要使用此方法,但没有一个可以解释原因。 有谁知道这实际上是什么?从我的角度来看,这似乎没有必要,但我认为我必须缺少一些东西。

4
如何有条件地停止psql脚本(基于变量值)?
让我们考虑以下示例(从psql脚本开始): \c :db_to_run_on TRUNCATE the_most_important_table; -- tried to avoid similarities to anything that exists out there 现在,如果通过命令运行它 psql [connection details] -v db_to_run_on=\'dev_database\' 然后它就运行了,用户很高兴。但是,如果他决定指定-v db_to_run_on=production_database呢?(让我们假设这会发生,就像人们rm -rf / # don't try this at home!!!偶尔运行一样。)希望该表有一个新的备份... 因此出现了一个问题:如何检查传递给脚本的变量并根据其值停止进一步处理?
10 postgresql  psql 

1
MySQL分区:在分区数量和每个分区的大小之间是否存在性能折衷?
我有一张大表(几亿行),我想对其进行有效的分区。我的问题是分区大小和分区数量之间是否需要权衡。据我了解,对分区中使用的列的大多数查询都将更快,因为该查询(对于大多数查询)仅需要在适用于该查询的分区中进行搜索。因此,为了最大程度地提高效率,应该将一个大表划分为最大数量的分区,从而使每个分区尽可能小。对于MySQL,这意味着1024个分区。但是拥有大量分区是否存在性能缺陷?是的,如何找到最佳的分区数? 注意:关于stackoverflow已经有一个类似的问题,但是只有一个答案(从我的角度来看)未达到要求。所以我将以自己的方式陈述这个问题...希望更清楚


1
如何创建触发器,以在修改行时更新日期字段和时间字段?
我testtable在数据库内部创建了一个testbase具有以下结构的表: product_no (int, not null) product_name (varchar(30), not null) price (money, null) expire_date (date, null) expire_time (time(7), null) 但是,我该如何编写触发器以使其将更新已修改(或用新信息更新)的特定行,并将修改日期记录到expire_date字段中,并将修改时间记录到expire_time字段中?(或者这是否可行?)

2
Microsoft SQL Server 2008 R2备份错误
我正在尝试对外部磁盘进行简单备份,并收到此错误: 服务器“服务器名”的备份失败 附加信息: System.Data.SqlClient.SqlError:加载在“ C:\ Program Files \ Microsoft SQL ..”上的媒体的格式设置为支持1个媒体系列,但是根据备份设备规范,预计需要2个媒体系列。(Microsoft.SqlServer.Smo)` 备份类型:完整 为什么会出现此错误,为什么该消息指向C:\Program Files..目标文件是否为外部设备?

4
如何检查子查询是否恰好具有一个完全不同的结果和一个指定的值?
我发现自己写了以下内容: select 'yes' where exists(select * from foo where val=1) and not exists(select * from foo where val<>1); 并且想知道是否有一种更简洁的方法而不牺牲太多的可读性。 我找到了一种发布答案的方法,但我对此并不完全满意,并且会对替代方法非常感兴趣 在这种情况下val,内部是唯一的foo-没有重复项

1
Mongo找不到我的收藏
我的mongodb服务器有一个名为villageContents的数据库 它有一个名为tablebusiness的集合 如果我跑蒙哥,我看到了 MongoDB shell version: 2.0.7 connecting to: test > 我想知道什么是“测试”。那里没有名为test的数据库。 我试图执行 > villageContents.tablebusiness.ensureIndex({"LatitudeLongitude" : "2d"}) Wed Aug 15 09:28:28 ReferenceError:is not defined (shell):1 > 我试图执行 > test.villageContents.tablebusiness.ensureIndex({"LatitudeLongitude" : "2d"}) Wed Aug 15 09:29:13 ReferenceError: test is not defined (shell):1 > 我做错了什么? 然后我做了 db.villageContents.tablebusiness.ensureIndex({"LatitudeLongitude" : "2d"}) 什么都没有出现。甚至没有添加索引。 那怎么了
10 mongodb 


4
检查2个表(在不同服务器上)是否具有相同的准确数据
因此,托管我们的SQL Server的公司似乎在从生产服务器到备份服务器的复制中遇到了一些麻烦……我相信某些表已被正确地复制了。复制每天进行一次(数小时后)。 有什么方法可以比较两个相同的表,一个是备份中的表,另一个是生产服务器中的表,以查看昨晚复制是否有效? 我能找到的唯一方法是在两台服务器上运行以下查询,并查看结果是否与哪个“可能”匹配意味着2个表包含相同的信息。 SELECT CHECKSUM_AGG(BINARY_CHECKSUM(*)) FROM ( SELECT * FROM table_to_compare ) t1 使用上面的代码,似乎表已成功复制,因为校验和值相同,但是我不确定此方法的可靠性。 有谁知道更好的方法来检查这一点,或者这是否是一个好方法? 我在Windows Server 2008计算机上运行SQL Server 2008。 谢谢。

2
如何从字符串中去除非数字字符?
用户在框中输入搜索词,然后将该值传递给存储过程,并对照数据库中的几个不同字段进行检查。这些字段并不总是具有相同的数据类型。 一个字段(电话号码)由所有数字组成,因此使用.Net CLR函数检查时会去除字符串中的所有非数字字符。 SELECT dbo.RegexReplace('(123)123-4567', '[^0-9]', '') 问题是,此函数有时突然停止工作,并出现以下错误: Msg 6533,第16级,状态49,第2行 AppDomain MyDBName.dbo [runtime] .1575已由升级策略卸载,以确保 您的应用程序的一致性。访问关键资源时发生内存不足。 System.Threading.ThreadAbortException:类型的异常 引发了“ System.Threading.ThreadAbortException”。 System.Threading.ThreadAbortException: 我已经尝试过针对此错误在MSDN上发布的建议,但仍然遇到问题。目前,我们无法选择切换到64位服务器。 我知道重新启动服务器会释放它所拥有的任何内存,但这在生产环境中不是可行的解决方案。 是否只有在使用T-SQL的SQL Server 2005中才能从字符串中去除非数字字符?

3
SQL BULK插入/ BCP导出后未释放使用的内存
我创建了一个非常基本的SQL表,如下所示 CREATE TABLE [dbo].[TickData]( [Date] [varchar](12) NULL, [Time] [varchar](12) NOT NULL, [Symbol] [varchar](12) NOT NULL, [Side] [varchar](2) NOT NULL, [Depth] [varchar](2) NOT NULL, [Quote] [varchar](12) NOT NULL, [Size] [varchar](18) NOT NULL ) ON [PRIMARY] 然后,我执行了3 Gig批量插入 BULK INSERT TickData FROM 'C:\SUMO.csv' GO 然后SQL Server的RAM使用量激增,吞噬了约30Go的RAM: 我更倾向于认为这是一种异常行为,可以采取措施避免这种情况。 编辑: 好的,这似乎是默认行为。很公平。 但是,为什么在大容量插入完成后很长时间没有释放内存? 几个额外的考虑因素: 关于SQL …

4
如何在具有16 GB RAM的QuadCore机器上充分利用MySQL?
我正在工作站上运行MySQL 5.5服务器以进行科学数据分析,并想知道如何配置MySQL以便从性能方面获得最大收益。我通常运行的查询类型涉及10-20个表的联接,并且可以运行很长时间,一到几分钟也不例外。只有极少数用户同时访问数据库(最多5个用户)。我将服务器从具有2.2 GHz双核和4 GB RAM的Lenovo Thinkpad T61移到了以下具有手动选择组件的全新机器上: Intel i7 3770,4x 3.4 GHz(以4x3.7 GHz运行) Z77芯片组 16 GB DDR3 1600 RAM Windows 7 Prof 64位 Windows和MySQL服务器在Intel 520系列SSD驱动器上运行。 首次测试(在两台计算机上运行相同的查询)显示了新测试的速度有了明显的提高,但是查询仍然需要很多时间,我期望会有更多的提升。所讨论的查询已得到很好的优化,即所有表都具有适当的键,这些键也从“解释扩展”开始使用。 现在回到我当前的MySQL设置:首先,我应该提到很久以前我从MyISAM迁移到Innodb。 我的my.ini进行了一些调整(即偏离默认设置): # Maximum size for internal (in-memory) temporary tables. If a table # grows larger than this value, it is automatically converted to …

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.