我有一个物化视图Postgres 9.3,我想用新列进行更新。但是,其他物化视图也依赖于该视图,并且错误消息表明当其他对象依赖于该视图时,无法删除该视图。
错误:无法删除物化视图 latest_charges 因为其他对象依赖它
从文档中还可以看出 REPLACE 关键字对物化视图无效。除了删除所有依赖对象并重建每个对象之外,还有其他捷径吗?
我有一个存储过程,它只在其中执行 3 个存储过程。如果主 SP 成功,我只使用 1 个参数来存储。
如果第一个存储过程在主存储过程中工作正常,但第二个存储过程失败,那么它会自动回滚主 SP 中的所有 SP 还是我必须发出一些命令?
这是我的程序:
CREATE PROCEDURE [dbo].[spSavesomename]
-- Add the parameters for the stored procedure here
@successful bit = null output
AS
BEGIN
begin transaction createSavebillinginvoice
begin Try
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
BEGIN
EXEC [dbo].[spNewBilling1]
END
BEGIN
EXEC [dbo].[spNewBilling2]
END
BEGIN
EXEC [dbo].[spNewBilling3]
END
set @successful = 1
end Try
begin Catch
rollback transaction createSavesomename
insert …Run Code Online (Sandbox Code Playgroud) 运行包含实际执行计划的查询时,根运算符 ( SELECT) 告诉我缓存计划大小为 32KB。
该连接的查询sys.dm_exec_cached_plans和sys.dm_os_memory_objects,看问题的计划,称该值pages_in_bytes和max_pages_in_bytes为32768(32KB),它匹配缓存计划的大小。
我不明白的是 中的值sys.dm_exec_cached_plans.size_in_bytes,即 49152 (48KB) 代表什么。我已经阅读了所有这些专栏的 BOL,特别是size_in_bytes其中说:
"缓存对象消耗的字节数。 "
我无法解决最后一点难题,无法理解它的真正含义。
我知道所有操作符(不是谈论用于排序和散列的额外内存授予)都需要一定数量的固定内存,以存储状态、进行计算等,这些内存与缓存中的优化计划一起存储,但在哪里?
所以,我的问题是:
size_in_bytes意思我知道它们是具有不同功能的不同 DMV,但它们是相关的。在编译(缓存)计划sys.dm_exec_cached_plans加入sys.dm_os_memory_objects在memory_object_address列。我在这里发布问题的原因是我在寻求帮助,了解如何解释 DMV 及其专栏。
如果size_in_bytes是缓存计划大小,为什么SQL Server在实际执行计划中说另一个值?
新查询,新号码:
sys.dm_exec_cached_plans.size_in_bytes 24KBsys.dm_os_memory_objects.pages_in_bytes, .max_pages_in_bytes 16KB。另请注意,此查询不需要为排序和散列操作分配任何额外的内存。
Microsoft SQL Server 2012 - 11.0.5343.0 (X64)
对于 MySQL,我知道数据库是在 SQL 语句中逐表备份的,这会导致锁定,如果在备份时更新列,则最终可能会出现完整性问题。
据我了解,这不适用于 Microsoft SQL Server,但 SQL Server 是如何处理的?是否有一些内部冻结来保持数据库一致?
我还听说备份是单线程的,这意味着它只使用一个核心,假设您备份到单个文件。还假设您有一台多核机器,例如 16 核,或者至少比 1 多得多。
根据我的个人经验,我在备份时从未遇到过问题,既没有锁定也没有开销问题,但我的经验有限。这就是为什么我总是建议在服务器属性中打开备份压缩。
那么当备份作业正在运行时会发生什么?不同版本是否也有显着差异?例如 2008、2012 和 2014(不是许可证)。
我正在尝试在 Windows 7 SP1 x64 上安装带有 SP1 x64 的 SQL Server Express 2012。这台机器以前安装了 SQL Server Express 2012。此实例已升级到 SQL Server 2012 Standard,此后已被卸载。
以下是安装过程中选择的选项:
在安装中包含 SQL Server 产品更新 -- 2 个与 KB 2793634 相关
将所有功能安装到默认目录
默认实例根目录中的命名实例 SQLEXPRESS
默认服务帐户:SQL Server 数据库引擎 -> NT Service\MSSQL$SQLEXPRESS
默认数据库引擎配置
安装失败并出现以下错误:
标题:Microsoft SQL Server 2012 Service Pack 1 安装程序
发生了以下错误:
找不到数据库引擎启动句柄。
如需帮助,请单击:http : //go.microsoft.com/fwlink?LinkID=20476&ProdName=Microsoft%20SQL%20Server&EvtSrc=setup.rll&EvtID=50000&ProdVer=11.0.3128.0&EvtType=0xD15B4EB2%2525405B4EB2%2525405BA1BA1
- - - - - - - - - - - - - - - 纽扣:
好的
我读到这可能与损坏的 MSSQL$SQLEXPRESS 虚拟帐户有关。
有想法该怎么解决这个吗?
谢谢,
乔恩。 …
我正在使用一个网络应用程序
SQL Server Express(Microsoft SQL Server 2016 (SP1) (KB3182545) - 13.0.4001.0 (X64) 2016 年 10 月 28 日 18:17:30 版权所有 (c) Microsoft Corporation Express Edition(64 位),Windows 10 Pro 6.3(内部版本 18362) :))。
Web 应用程序正在使用连接字符串连接到数据库。在搜索了几天的正确连接字符串格式后,我设法找到了格式,使用 Nik 在这篇博客文章中描述的方法,它是:
Data Source = np:\\.\pipe\LOCALDB#A9DE3E14\tsql\query; Initial Catalog = MyDataBaseCatalog; User ID = myuser; Password=mypassword;
Run Code Online (Sandbox Code Playgroud)
昨天一切正常,但今天它停止了。我发现服务名称已更改为:
LOCALDB#B87CB983
Run Code Online (Sandbox Code Playgroud)
用连接字符串中的新服务名称替换实例名称后,Web 应用程序运行良好,但这不是可接受的解决方案。
你能告诉我为什么实例名称会改变吗,是否有任何 Express 版本限制?如何将名称配置为永久?
我们正在与供应商解决一个长期存在的问题。他们的软件有一种倾向,每周一到两次停止工作并停止工作,从而对我们的运营造成重大干扰。尽管我们向他们发送了许多 GB 的日志和数据库备份,但他们仍无法确定原因。最近,他们开始暗示问题出在我们的维护上,而不是出在他们的软件上(尽管没有长时间运行的查询、CPU/RAM/IO 压力,甚至在问题发生时出现死锁)。特别是他们说我们的索引是一个问题。
他们最喜欢使用的工具是 DBCC showcontig,尽管我认为 MS 不赞成使用该工具。他们尤其关注扫描密度和范围碎片。为了消除这个借口,我制定了一些积极的夜间维护,以<90% 的扫描密度或> 10% 的碎片重建索引。这在某种程度上使他们脱离了扫描密度序列,但他们仍然专注于范围碎片。即使在数小时前重建的索引上,DBCC showcontig 也会显示高度碎片化。下面是 dbcc_showcontig 和 sys.dm_db_index_physical_stats 的结果,他们指出一个表是“可能的问题”。
DBCC SHOWCONTIG
Run Code Online (Sandbox Code Playgroud)
- 扫描的页面......................................: 1222108
- 扫描的范围............................................:152964
- 范围开关………………………………………………………………………………………………………………
- 平均 每个范围的页数………………………………………………………………………………………………………………………………………………
- 扫描密度 [最佳计数:实际计数]......:84.44% [152764:180905]
- 逻辑扫描分片 ..................... 3.24%
- 范围扫描碎片 ..................... 35.97%
- 平均 每页可用字节数........................: 692.5
- 平均 页面密度(完整)......................:91.44%
sys.dm_db_index_physical_stats
index_type_desc alloc_unit_type_desc Avg_fragmentation_in_percent page_count
CLUSTERED INDEX IN_ROW_DATA 3.236803129 1222070
NONCLUSTERED INDEX IN_ROW_DATA 0.680074642 48230
NONCLUSTERED INDEX IN_ROW_DATA 0.093237195 48264
NONCLUSTERED INDEX IN_ROW_DATA 0.03315856 48253
NONCLUSTERED INDEX IN_ROW_DATA 0.194653248 48291
NONCLUSTERED INDEX IN_ROW_DATA 0.393480436 58961
NONCLUSTERED INDEX IN_ROW_DATA 0.23622292 64346 …Run Code Online (Sandbox Code Playgroud) 我的 SQL Server 2005 主服务器出现故障,所以我在辅助服务器上启动了日志传送数据库。数据库在辅助服务器上,我只需要删除它的日志传送设置,而主服务器不再可访问。
似乎sp_delete_log_shipping_secondary_database应该在辅助服务器上执行存储过程来执行此操作,它“删除辅助数据库并删除本地历史记录和远程历史记录”,正如msdn 上所述。
这也会删除数据库本身吗?还是只有它的日志传送设置?当主服务器不可访问时它会做什么?
我不能丢失辅助服务器上的数据库,因为它已经在使用中。
有没有人(内部?)了解备份压缩如何与 SQL Server(2016+ 版)上的 TDE 配合使用。
一般来说,我认为压缩加密数据的好处很小,但是我们注意到,使用 TDE,当我们使用压缩进行完整备份时,我们仍然看到备份文件大小显着减少。这让我们怀疑备份过程是否会解密数据、压缩数据、加密结果,然后将其备份到磁盘。显然,由于需要解密和重新加密数据,这将增加备份过程的 CPU 消耗。
细节
select @@version
Microsoft SQL Server 2017 (RTM) - 14.0.1000.169 (X64) 2017 年 8 月 22 日 17:04:49 版权所有 (C) 2017 Microsoft Corporation Developer Edition(64 位),Windows 10 Enterprise 10.0(内部版本 17763:)(Hypervisor)
TSQL脚本
备份数据库 TestTDE 到磁盘 = 'c:\Test\TestTDE_Compressed.bak' WITH COMPRESSION, MAXTRANSFERSIZE = 65537
还是以不同的方式实现了空间节省?
sql-server backup transparent-data-encryption sql-server-2017
我们确实为 SQL Server 2008 r2 express 制定了一些维护计划。如果任何表的页数超过 50 并且平均碎片超过 20,我们每个月都会对数据库进行碎片整理。
如果数据库日志大小>2MB,则恢复模式为简单,收缩,恢复模式重新设置为FULL。如果 Page_count>50 且 avg_fragmentation_in_percent > 30,则索引为 REBUILD。
如果 Page_count>50 且 avg_fragmentation_in_percent > 5 且 <30,则索引为 REORGANIZE。
这就是我们目前正在做的事情。但是我们发现自增长事件是资源密集型的,不应重复发生。现在,对于所有数据库,mdf 文件的自动增长设置为 MB,ldf 文件设置为 10%,这是创建新数据库时的默认值。我们计划根据每天变大的数据库数量来增加数据库的自动增长值。但是我想知道有多少自动增长事件对数据库来说是理想的。我应该设置自动增长以便它每天、每周或每月等只发生一次吗?所以请帮助我为我的数据库设置自动增长值。还有另一个问题,如果我每月对数据库进行碎片整理,那么它就会缩小。因此,在此之后,对于所有我确实收缩过的数据库,在写入新数据时都会发生一次自动增长。所以会有很多自动增长事件。那么会不会有问题呢?请告诉我一个解决方案。
sql-server ×8
backup ×2
dmv ×1
index ×1
installation ×1
log-shipping ×1
maintenance ×1
memory ×1
performance ×1
plan-cache ×1
postgresql ×1
shrink ×1
transaction ×1
transparent-data-encryption ×1
view ×1