我正在与一家供应商合作,他们提供核心应用程序,只要我不修改核心应用程序,我就可以构建自己的扩展。它内置于连接到 SQL Server 2005 数据库的 ColdFusion 中。
我构建的一些报告依赖于使用从核心表计算的函数的视图,并且随着表变大,报告变得非常缓慢。为了加快报告速度,我想使用索引视图。但是在我的测试环境中创建索引视图后,核心应用程序无法再插入到核心表中(它返回了使用索引视图时ARITHABORT
需要的错误消息ON
)。
因此,似乎为了使用索引视图,SET ARITHABORT ON
每当插入/更新核心表时,我都需要拥有核心应用程序。我在我的测试环境中运行了这个:
ALTER DATABASE MyDatabase SET ARITHABORT ON;
Run Code Online (Sandbox Code Playgroud)
它似乎工作正常。但是我的供应商说,由于应用程序有数千个查询,因此此设置可能会破坏其中一个查询,如果我们将来遇到一些意外的数据库问题,他们会坚持要我恢复默认设置。
是否有实际的查询会被打破SET ARITHABORT ON
?有什么情况最好保留它OFF
吗?
TL;DR 为了让我的新索引视图工作,我需要ARITHABORT ON
为整个数据库设置,但我的供应商警告说,这将由我自己承担风险。真的有风险吗?
sql-server-2005 vendor-support configuration materialized-view
如何有效地使用 My Oracle Support (Metalink)?
你对这个系统有什么秘密提示?什么为您节省了最多的时间?
是否有建议的方法从 SQL Server 2012 SP2 中的另一个数据库重建整个 SQL Server 数据库?
让我解释一下……我们有一个数据库,我们正试图对其启用部分遏制,然后将其添加到我们的 AlwaysOn 集群中。在尝试将遏制设置为部分时,我们只得到死锁错误。数据库从 SQL Server 2008 到 2008R2 到 2012(没有 SP、SP1、SP2)并且有一段时间的 TDE。
Microsoft 支持人员已经研究它几天了,但它看起来并不是很有希望,我认为我们现在倾向于某种形式的腐败。我们的应用程序和其他一切似乎仍然可以正常访问它,只是设置这个小标志不起作用。很奇怪的问题。
我在网上找到的唯一一个显示完全相同问题的参考来自葡萄牙语的 Technet 论坛帖子(翻译链接),但从未得到解决。
此时,我不能再等了,我只想在新数据库中重建这些数据。我想我可以编写整个程序,但是这个 DB 已经大约 20GB,所以这将是一个令人讨厌的脚本。
有没有人建议如何基于另一个数据库重新创建一个新数据库 - 没有标准的备份/恢复?编写脚本是正确的方法吗?
根据Oracle 的说法,Oracle 的配置管理器是否提供了“将问题解决速度提高了40%”、是否违反了HIPAA或需要特定配置以符合要求?
此问题涉及包含受保护医疗保健信息 (PHI) 的数据库。问题范围仅涵盖 OCM,而不是更广泛的 Oracle 支持访问数据库的范围。
以下来自 Oracle 的内容描述了 OCM 收集的内容:
Oracle Configuration Manager 可以自动收集 Oracle 产品安装的配置信息,并将这些信息上传到 Oracle 的支持系统。Oracle Configuration Manager 收集的配置信息包括:
• 安装的补丁
• 部署平台、日期、版本和类型
• 部署的组件和应用程序
• 配置文件的内容
• 有关网络配置的信息请注意,Oracle Configuration Manager 收集的信息仅限于配置信息。该实用程序不会收集诸如实际客户数据(即配置信息以外的任何数据,包括实际应用程序或数据库事务)、密码哈希值、登录事件等敏感数据。My Oracle Support 说明728985.1提供了所有Oracle 配置管理器收集的数据。
根据hss.gov,以下信息受 HIPAA 保护:
隐私规则保护涵盖实体或其业务伙伴以任何形式或媒体(无论是电子、纸质或口头)持有或传输的所有“可识别个人身份的健康信息”。隐私规则将此信息称为“受保护的健康信息 (PHI)”。12
“个人可识别的健康信息”是与以下相关的信息,包括人口统计数据:
• 个人过去、现在或未来的身体或心理健康或状况,
• 向个人提供的医疗保健,或
• 过去、现在或未来为向个人提供医疗保健的费用,13 个人可识别的健康信息包括许多常见的标识符(例如,姓名、地址、出生日期、社会安全号码)。
我有一个与 Oracle 合作的案例,他们说他们无法重现这一点。在 11.2.0.1 或更低版本中运行以下命令会从这两个查询中生成两行,但在 11.2.0.2 中,除非删除 case 语句,否则第二个查询将返回三行。任何人都可以确认这种行为吗?
create table t1 as (select rownum+1 id1 from dual connect by rownum<=3);
create table t2 as (select rownum+1 id2 from dual connect by rownum<=2);
--Correct version that returns two rows.
SELECT t1.id1 id1, t2.id2 id2, t3.id3 id3
, DECODE(1,1,'a','b') "Case/Decode"
FROM t1
LEFT JOIN t2 ON t1.id1 = t2.id2
LEFT JOIN (SELECT 1 id3 FROM dual) t3 ON t3.id3 = t1.id1
WHERE (t2.id2 IS NOT NULL or t3.id3 IS NOT NULL); …
Run Code Online (Sandbox Code Playgroud) 我所在的团队开发使用多个 SQL Server 数据库的产品。其中一些大多是只读的。表不会更改,但作为配置应用程序的一种方式,某些视图和存储过程会更改。这些视图缺少索引。它们不是物化视图。对表的更改仅在升级期间发生,并且涉及向客户端发送附加的新 MDF。我应该执行哪些步骤来使这些数据库处于“发货就绪”状态?更新请注意,这些 MDF 中有大量可用空间,因此会收缩,然后重新索引。
我们目前正在做以下工作:
DBCC SHRINKDATABASE
在数据库上运行EXECUTE dbo.DatabaseIntegrityCheck
@Databases = 'DB_IN_QUESTION',
@CheckCommands = 'CHECKDB',
@ExtendedLogicalChecks = 'Y',
@TabLock = 'Y'
GO
EXECUTE dbo.IndexOptimize
@Databases = 'DATABASE_IN_QUESTION',
@FragmentationLow = NULL,
@FragmentationMedium = 'INDEX_REORGANIZE,INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE',
@FragmentationHigh = 'INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE',
@FragmentationLevel1 = 5,
@FragmentationLevel2 = 30,
@SortInTempdb = 'Y',
@MaxDOP = 0
GO
Run Code Online (Sandbox Code Playgroud)我们应该为 Ola 的脚本使用其他参数吗?我们是否应该采取任何其他措施?将数据库设为只读会很麻烦,因为视图和存储过程经常由最终用户修改。
我需要你的建议。
我们公司即将取消对 SQL Server 的支持。
我有这种直觉,觉得这是一个非常糟糕的主意。
我知道不再有 SQL Server 更新,但即使这足以让我保持支持,我的公司仍认为我的数据仓库运行良好。所以没有理由更新“不存在”的错误,对吗?
我要问你的问题是:你为什么要保持 SQL Server 支持合同的运行?