我有一个包含超过 18 亿行的 Oracle 表,我需要删除最多 2.6 亿行。
我是一名 Microsoft SQL DBA,因此不太熟悉 Oracle 语法和此类过程的最佳实践。
- CTAS 感觉不是一个好的选择,因为我需要删除较少的行数
- 标准版因此无法使用 MOVE ONLINE INCLUDING ROWS
任何建议和意见将不胜感激。
我有一个包含超过 18 亿行的 Oracle 表,我需要删除最多 2.6 亿行。
我是一名 Microsoft SQL DBA,因此不太熟悉 Oracle 语法和此类过程的最佳实践。
任何建议和意见将不胜感激。
有一个写入很多的表,但数据随后被应用程序端删除并保持相对不变。它被多个除了IN子句之外相同的查询命中,可以有一个,两个或50个选项
WHERE Name IN ('test1', 'test2', 'test3', 'etc', 'etc')
代码来自应用程序内部,无法更改,来自实体框架或类似的东西。我通过使用计划指南改进了几个查询,我知道这些可能会造成技术债务,因为今天的好计划明天可能不是一个好计划,但由于定期写入/清除此表,我们还没有遇到过这种情况。
所以我的问题是,我有两个查询,它们的 IN 子句值仅相差 2/3,我已经使用 query1 的指南锁定了一个好的计划是否可以针对 query2 锁定相同的计划句柄。这些计划与“好”计划和“坏”计划相似,唯一的区别是排序操作。
运行 SQL 2017 Ent
我创建了一个简单的 SSIS 包,用于查询表并将数据提取到平面 CSV 文件中。在生产中,此提取可能是数百万行,我想根据行数将平面文件目标拆分为多个文件。
因此,每次我们使用文件名达到 100000 行时创建新文件,例如
我找到了 ZappySys 的付费工具,它可以做到这一点,但不能用普通的 SSIS 工具箱来解决这个问题,我可能会遗漏一些非常简单的东西。我找到了其他帖子和视频,但其中一些涉及使用常规工具集之外的其他代码,例如 techbrothersit 网站。
编辑:在阅读和评论之后,这看起来比预期的要难。
如果我更改基于表中日期列拆分平面文件的过程,那会更直接吗?
表格有一个短日期列,格式为 2020-07-30,每个 CSV 文件将仅包含一天的提取数据(可能是 100K+),然后从表格中删除该数据。提取所有数据后将进行删除。
我正在尝试使用 foreach/forloop 容器,但由于这对我来说是全新的,所以我很努力,任何帮助将不胜感激。
我继承了两个带有两个镜像数据库的 SQL 2016 服务器。
它们是使用证书构建的,因为它们在工作组中,证书在六个月后到期。我正在尝试了解用寿命更长的新证书替换证书的过程,以及该过程是否可以在线完成而无需停机?
只是为了确认证书尚未过期,我只是积极主动。
我在想这样的事情:
我正在使用 SQL 可用性组配置 SQL Always on 高可用性解决方案,这将跨越两个子网。
使用 Windows 2019 和 SQL 2019,AWS 中的一个节点和 Premise 中的一个节点。
当我启动创建集群向导时,我可以将两个节点都添加到集群中,但是当我进入下一部分“用于管理集群的接入点”时,我只看到一个网络,我希望看到两个,每个子网一个.
SQL 中的 SQL 2017 Standard 始终位于两个节点 Basic AG 上。具有不同子网 IP 的侦听器有两条 DNS 记录
服务器跨子网,我们遇到了应用程序在与数据库通信时看到随机超时的问题,其他时候它以毫秒为单位响应。运行 Wireshark 后,我们可以看到应用程序正在尝试通过故障转移合作伙伴侦听器 IP 地址与数据库通信,这是不可读的副本。
我已阅读的此信息解释了 21 秒超时。
MultiSubnetFailover=TRUE 似乎是解决方案,但应用程序使用的是旧版本的 .NET 是否还有其他方法可以解决或解决此问题?
作为 SQL 2017 Always on 可用性组 (BAG) 一部分的服务器,我注意到这些消息有所增加。我知道这些是自 2012 年以来作为标准出现在日志中的消息(2012 年之前的跟踪标志),但在过去 2 天它们每隔几分钟出现一次,此时没有运行备份或维护作业
服务器充当辅助不可读故障转移伙伴,而主服务器没有表现出相同的行为。
09/04/2020 10:52:24,spid82s,Unknown,FlushCache: 为 db 7:0 09/04/2020 10:52:07 在 81090 毫秒内清理了 2303 个 bufs 和 1881 次写入(避免了 11 个新的脏 bufs), spid52s,未知,最后一个未完成的目标:2 avgWriteLatency 86 09/04/2020 10:52:07,spid52s,未知,每秒平均写入:17.70 写入/秒平均吞吐量:0.19 MB/秒 I/O 饱和度:13073 上下文切换15434
系统错误日志中还有一个关于磁盘问题的警告,在此之后几秒钟,可用性组故障转移,因为 FlushCache 消息增加了。
有没有人经历过类似的事情或有任何建议,我的系统管理员也在关注 SAN 和 VMware 资产。
突然想到这些可能是由自动增长活动引起的吗?
我正在使用这个有效的代码根据冒号拆分一列。
,CASE WHEN CHARINDEX (':', ref) > 0
THEN SUBSTRING(ref, 1, CHARINDEX(':', ref) -1)
ELSE NULL
END AS EndVal
'EndVal' 是数字,当它小于 4 个字符时,我需要添加前导零,所以
123 = 0123
1 = 0001
1234 = 1234
我知道我可以使用 RIGHT 或 REPLICATE 函数来实现这一点,但我无法理解如何将它添加到现有代码或编辑它以便它同时完成这两项工作?
对原始代码的任何建议也非常感谢。必须让它在 SQL 2008 上工作,是的,我想升级但是......
我有一个表,其中包含一个文件路径列,其中包含这样的数据。
C:\ABC\Files\AA.dat
C:\ABC\Files\AA.Unbound.qp
C:\DEF\AA\GGG Build 1 Modules\Random123.qpp
C:\DEF\AA\GGG Build 1 Modules\Random456.qpp
C:\GH\DC.Random789.qpp
C:\IJK\Random987.qpp
我需要将文件路径替换为实际文件名之前的通用路径,因此最终 \ 之前的所有内容都需要更改但保持相同的文件名,如下所示
D:\FILES\AA.dat
D:\FILES\AA.Unbound.qpp
D:\FILES\Random123.qpp
D:\FILES\Random456.qpp
D:\FILES\DC.Random789.qpp
D:\FILES\Random987.qpp
表有大约 2000 行,如果可能的话,我想在一个脚本中更新。运行 SQL 2008R2,这是最终升级的第一阶段,因此将不胜感激。
在 Windows 2016 上安装 SQL Server 2017 Standard 并在输入 SQL 代理、服务、SSIS 的新服务帐户时遇到错误。
'RPC 服务不可用,单击重试失败的操作'
在安装程序页面的底部,它抱怨用户帐户无效。我知道 AD 帐户可以工作,并且可以作为服务帐户登录 Windows 服务器。
我的网络管理员强迫我在这台服务器上启用 WINS,它现在可以工作了,有没有人知道为什么或什么可能被阻止,因为服务器位于防火墙后面,但本地防火墙已关闭。
因此,AWS RDS 上的 SQL 非常新。
需要在 AWS RDS SQL2016 实例上创建维护作业。我知道 Ola Hallengren 的部分救生员维护脚本的工作原理、索引、统计数据和完整性。
通过 Ola 的 maint 脚本进行挑选,看起来有检查 RDS 的逻辑。
对于这样做的人,我该如何安装它,我是否单独运行脚本并针对哪个数据库?
我偶尔会在 SQL 错误日志中注意到这个错误:
由于内存压力,spid20s,Unknown,AppDomain 79 (master.sys[runtime].78) 被标记为卸载。
我正在使用 SQL Server 2016,SP1 CU5(我正在推动修补,但该公司反对)。
我读过的所有内容都指向非 CLR 特定的内存压力。有关于更改MemToLeave
启动参数中的设置的建议。对于较新版本的 SQL Server 仍然是这种情况,还是有其他建议?
我敢肯定,对于外面的人来说,这是一个非常简单的问题,但我的大脑已经关闭。
我已经用左连接加入了两个表,这已经达到了预期的效果,因为我确实需要将其中一个表中的 NULL 带回,因为某些行不会有共同赞助的匹配项。
我需要在“可能”为 NULL 的列之一上放置一个 WHERE 子句,并且我想带回所有具有 0 和 NULL 的行
简单地说,所以我想带回 0 或 NULL / Blanks WHERE Expired = '0' 的行
我需要在查询的结果集中插入一个空格,我尝试使用 space() 函数并且正确但我自己感到困惑。
查询的列结果是:
我需要这个:
继承了全职 DBA 从未接触过的新 SQL 资产。镜像已在多台服务器上设置和删除,但未完全删除,旧的见证服务器仍处于活动状态。
见证服务器是否仍然可以确定原则/镜像是否仍在通信或处于活动状态。
我已经通过 DMV 进行了选择,下面的 DMV 是最有帮助的,但是四个见证实例中的一个确实报告了连接,任何建议都会有所帮助。
sys.dm_db_mirrroing_connections
最近继承了一个新的 SQL 服务器,经过一些 Blitz(感谢 Brent 和团队)检查后,我们注意到一些数据库的页面验证选项被设置为 Torn_Page 或 None。我想将其更改为 Check_Sum。
公司政策是对我所做的一切进行更改,我打算在今天清晨进行更改,因为我确信影响非常小。我知道它会刷新 proc 缓存,但它是否会对实时系统产生任何其他影响,是否应该是非工作时间更改?
在运行Ola 的完整 SQL Server 维护解决方案或单独的数据库备份脚本时,出现以下错误:
MSG 207,级别 16,状态 1,Procedure DatabaseBackup,第 1545 行列名称“schemaName”无效。
这是@databasesInParallel
它似乎试图运行的部分的一部分,即使此变量设置为'N'
在脚本的开头也是如此。我没有改变任何东西,这个脚本在其他服务器上也能完美运行。
希望这个问题有一个非常“简单”的答案: