数据库管理员

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

2
在SQL中比较两个大型数据集的有效方法
目前,我正在比较两个包含唯一StoreKey/ProductKey组合的数据集。 第一个数据集具有StoreKey/ProductKey2012年1月开始至2014年5月结束之间的唯一销售组合(结果= 45万行)。第二个数据集具有独特的StoreKey/ProductKey组合,从2014年6月开始销售到今天(结果= 190K行)。 我正在寻找StoreKey/ProductKey第二组中的组合,但不在第一组中-即从6月初开始销售的新产品。 到目前为止,我已经将这两个数据集转储到了临时表中,在两个键上都为这两个表创建了索引,并使用该EXCEPT语句查找了唯一项。 比较这么大的数据集最有效的方法是什么?有没有更有效的方式进行这种大型比较?

1
大约50天后,SQL Server 2012页面预期寿命将重置为0
我注意到两台服务器HA群集上的行为异常,我希望有人可以证实我的怀疑,或者提供其他解释...这是我的设置: 2服务器SQL 2012 SP1安装 已为一些数据库启用SQL AlwaysOn HA CPU为2.4GHz,4核 RAM为34 GB(这是一个AWS实例,因此为奇数) 资源利用率相对较低-每个服务器有14 GB以上的可用内存,并且SQL没有限制要使用的内存量 磁盘访问时间很好-很少超过15ms /读或写 数据库不是很大-1 GB,1.5 GB,7.5 GB SQL Server进程正在使用16 GB专用字节,15 GB工作集 总体而言,没有发现资源问题。现在是奇怪的部分。SQL不会重新启动(进程已经运行了近6个月),但是似乎每隔50天,Page Life Expectancy计数器就会下降(几乎)为0。直到那一点为止,它稳步上升,没有下降。这是一个性能图: 当我查看计数器数据(我没有确切的数字,只是一个小时的汇总)时,似乎PLE计数器值每次(至少每次我有数据)都达到约4,295,000秒(约50天)。 我疯狂的理论是,PLE数字以毫秒为单位,以无符号长整数(上限为4,294,967,295)保存,并且在49.71天时会由于设计或错误而重置。这将解释两个服务器的行为以及它们具有的相同模式。或者可能是完全不同的东西,我只是没有任何意义。:) 有没有人看到过类似的东西,或者可以解释这种行为? PS我看到了这篇文章,但我的情况似乎略有不同。 PPS这是一个重新发布-我最初在此处发布,但被告知此处的观众更合适。 谢谢!

9
如何最大程度地减少意外修改错误数据库的风险?
我刚刚学到了一种很难的方法,即在对象资源管理器中与服务器断开连接不会阻止您随后执行已在该服务器上打开的查询窗口。 我的情况是这样的:我有一个SSMS实例,可用于连接到我们的开发/登台服务器和生产服务器。我不得不删除有关dev的大量数据,所以我认为应该关闭与生产的连接,但是我没有注意我正在使用的查询窗口。(幸运的是,我们只有几个小时的备份时间。) 我不是破坏生产数据的第一个人,我肯定不会是最后一个。因此,我正在寻找清单,最佳实践等,以帮助您最大程度地减少对错误数据库执行查询的风险。您以前是否遇到过这种情况,您如何调整工作流程来避免这种情况?
12 sql-server  ssms 

4
如何使用密码将登录从2008R2转移到2014?
我已经尝试过Tasks>,Generate Scripts...并在“高级脚本选项”中设置了“脚本登录名”,但在输出中得到了此信息: /* For security reasons the login is created disabled and with a random password. */ 有没有一种简单的方法可以用密码对这些登录进行脚本编写,或者可以通过其他方法将登录从2008R2实例传输到2014实例?

11
如何找出2个SQL表之间的内容差异并生成同步SQL
我如何找出具有精确模式的两个表之间的数据差异,以及如何生成同步SQL以获取并集结果(无重复项)? 这些是2个表: SOURCE01.dbo.Customers (31,022 rows) TARGET01.dbo.Customers (29,300 rows) 每个表的模式为: [CustomerId] : nvarchar(255) [CustomerSerializedProfile]: nvarchar(max) [CreatedDatetime] : DateTime


1
如何以扩展的树状方式对递归查询的结果进行排序?
假设您有一个nodes这样的表: CREATE TABLE nodes ( node serial PRIMARY KEY, parent integer NULL REFERENCES nodes(node), ts timestamp NOT NULL DEFAULT now() ); 它代表一个标准的类节点树结构,其中根节点在顶部,几个子节点与根节点或其他子节点悬挂在一起。 让我们插入几个示例值: INSERT INTO nodes (parent) VALUES (NULL), (NULL), (NULL), (NULL), (1), (1), (1), (1), (6), (1) , (6), (9), (6), (6), (3), (3), (3), (15); 现在,我要检索前10个根节点及其所有子节点,深度为4: WITH RECURSIVE …

2
如何在Windows7启动时禁用启动MySQL服务?
当我打开桌面(Windows 7 SP1)时,我经常发现MySQL进程已经占用了2或3 GB的内存。我不关心数据库需要多少内存(如果它实际上运行一些查询),但是我确实关心,如果它是一个应用程序,我什至还不启动自己。因此,我在本地环境中开发一些Web应用程序时几乎不使用MySQL限制。 那么有可能停止这种暴食吗?我试图通过将该MySQL从启动组中删除msconfig,但是在那找不到它的名字。 这是额外的信息。 mysql Ver 14.14 Distrib 5.6.15, for Win64 (x86_64) MySQL Server 5.6 MySQL Workbench 6.0
12 mysql  windows 

1
如何解释这些DMV的结果以帮助我评估分区策略?
版本:SQL Server 2008 R2 Enterprise Edtn。(10.50.4000) 为了评估我们的分区策略,我编写了此查询来获取针对分区上索引的访问方法(从广义上讲,尽管我要消除堆)。当我将注意力集中在分区表上时,我相信我需要研究range_scan_count并且singleton_lookup_count在概念化方面遇到了困难。 SELECT t.name AS table_name, i.name AS index_name, ios.partition_number, leaf_insert_count, leaf_delete_count, leaf_update_count, leaf_ghost_count, range_scan_count, singleton_lookup_count, page_latch_wait_count , page_latch_wait_in_ms, row_lock_count , page_lock_count, row_lock_wait_in_ms , page_lock_wait_in_ms, page_io_latch_wait_count , page_io_latch_wait_in_ms FROM sys.dm_db_partition_stats ps JOIN sys.tables t ON ps.object_id = t.object_id JOIN sys.schemas s ON t.schema_id = s.schema_id …

1
SQL Server 2008 R2索引重建失败,严重性为17
有时,在进行索引维护期间,作业将因SEV 17错误而失败,因为该错误无法为正在重建的对象分配足够的空间。数据库的布局如下: Data_file1 PRIMARY 0 growth 0% free Max Size UNLIMITED Data_file2 PRIMARY 0 growth 0% free Max Size UNLIMITED Data_file3 PRIMARY 0 growth Less than 1% free Max Size UNLIMITED Data_file4 PRIMARY 250 MB growth Less than 1% free Max Size UNLIMITED 本质上,4个数据文件中的3个已满并且不允许增长,第四个已满并且允许增长。文件分散在不同的LUN上(以及混乱的原因)。因此,当我开始进行联机索引重建时,据我了解,如果需要任何额外空间,它将增长到Data_file4中并且很好,但是显然它正在尝试增长到不允许增长且失败的其他文件中。我无法重现此错误,但我想知道是否有人了解为什么会发生这种情况。 完整的SQL Server版本是2008 R2 Enterprise SP2 CU …

2
在没有提示且没有root密码的情况下在Ubuntu上安装MariaDB 10
与此问题几乎相同,但我不想输入root密码(这只是开发机器)。 这是我得到的: export DEBIAN_FRONTEND=noninteractive sudo debconf-set-selections <<< 'mariadb-server-10.0 mysql-server/root_password password PASS' sudo debconf-set-selections <<< 'mariadb-server-10.0 mysql-server/root_password_again password PASS' sudo apt-get install -y mariadb-server 这将以静默方式安装MariaDB,但会将root密码设置为“ PASS”。如果我删除它,则会进行部分奇怪的安装,因为它仍在尝试提示我。
12 ubuntu  mariadb 

1
如何确定SSIS转换是非阻塞,部分阻塞还是完全阻塞?
有几篇博客声称将SSIS转换分为阻塞(异步),非阻塞(同步)和部分阻塞(异步)。 在研究特定问题时:多播是同步的(非阻塞)还是异步的(部分阻塞)? 一种资源声称异步:“多播是异步(也称为部分阻止)转换” 源:http : //social.technet.microsoft.com/wiki/contents/articles/7392.ssis-multicast-transformation.aspx 另一个同步:https ://jorgklein.com/2009/04/14/ssis-lookup-is-case-sensitive/ 其他资源声称DQS清理转换是非阻塞转换,但在我看来,它是部分阻塞的。 请不要回答按类型分类的转换列表的链接。希望该问题的答案能够提供更严格的方法来证明正确的答案。 由于部分阻塞和阻塞转换会将数据移动到新的缓冲区,而不是在适当的缓冲区上进行非阻塞操作,因此我怀疑解决方案将是在转换执行期间监视缓冲区的创建,但我不确定(a )是否会产生明确的答案,以及(b)怎么做。 我相信无阻塞转换不会导致新的执行树开始,因此答案可能在于记录PipelineExectionTrees和PipelineExecutionPlan。这可以区分同步和异步,但不能区分部分阻塞和完全阻塞。

2
使用TM REQUEST和计划句柄0x0000挂起的会话
我们有一个定期事件,许多请求都挂在TM REQUEST上(来自sys.dm_os_waiting_tasks),并且没有任何进展。KILL对受影响session_id者无能为力 服务器运行数据库镜像(2008R2)。暂停和恢复镜像可解决此问题。 处于此状态的会话是无法杀死的。镜子上的负载是正常的,不是突发性的。一旦大量连接卡在此状态,系统将冻结,镜像将停止复制(所有查询均被阻止)。 任何人以前都看过这个,知道是什么原因造成的吗?错误日志中没有任何内容。
12 sql-server 

1
FreeProcCache和FreeSystemCache之间的区别
当前,DBCC FREEPROCCACHE当我想在运行SQL查询之间将信息从缓冲池中擦除时,我正在运行。不过,我正在审查此 Technet文章引用DBCC FREESYSTEMCACHE。什么FREESYSTEMCACHE擦除不会擦除FREEPROCCACHE?
12 sql-server  cache 

1
SQL Server-向用户授予数据库DBO权限
我有一个报告数据库,每天晚上都从生产数据库的备份中还原。还原时,需要将用户添加到该DBO数据库的角色中。 我认为这可以工作: use Restored_Prod go exec sp_addrolemember 'db_owner', 'chris' go 但是我收到以下错误,因为Restored_Prod数据库中不存在该用户: Msg 15410, Level 11, State 1, Procedure sp_addrolemember, Line 75 User or role 'chris' does not exist in this database. 如何将用户“ chris”添加到数据库中,以便能够运行sp_addrolemember使其成为DBO该数据库的成员?有没有一种方法可以使用sp_addrolemember用户所在的主数据库中的命令添加用户权限?

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.