数据文件缩小后,硬盘上有大约 180Gb 的可用空间(操作前的缩小文件对话框还显示可以释放大约 180Gb 的空间)。1-2 天后,数据文件会恢复到其原始大小(缩小操作之前),并且可以再次缩小(缩小文件对话框再次显示可以释放大约 180Gb 的空间)。
我严格强制在硬盘上保留一些可用空间,因此避免缩减操作是不可能的。
寻求可能导致此问题的原因以及可能的解决方案的建议。
数据文件缩小后,硬盘上有大约 180Gb 的可用空间(操作前的缩小文件对话框还显示可以释放大约 180Gb 的空间)。1-2 天后,数据文件会恢复到其原始大小(缩小操作之前),并且可以再次缩小(缩小文件对话框再次显示可以释放大约 180Gb 的空间)。
我严格强制在硬盘上保留一些可用空间,因此避免缩减操作是不可能的。
寻求可能导致此问题的原因以及可能的解决方案的建议。
我有两张表(订单,付款)它们是一对多关系(1:N)一个订单可以有很多付款
表 1:订单
ID | 总价 |
---|---|
1 | 1000 |
2 | 2000 |
3 | 3000 |
表 2:付款
order_id(订单的FK) | 支付金额 |
---|---|
1 | 500 |
2 | 2000 |
3 | 1000 |
3 | 500 |
3 | 750 |
有些订单没有完全支付,所以我想得到
1- 每个订单支付的其余部分 .. 喜欢:
命令 | 已付余款 |
---|---|
1 | 500 |
3 | 750 |
2- 其余所有订单的总和 Like: 1250
谢谢。
我正在尝试从表Titem列类型更新类型并将其设置为新 ID,同时让它检查用户 ID 是否拥有这 2 个项目(我们正在更新的旧 ID,第二个 ID这只是为了检查 user_id 是否拥有它)。然而,这是我做错的部分,我不知道如何使用其中一种项目类型,因为它只是在更新另一种项目类型时,因为它们都共享类型作为参考。我知道我使用的就像有人会说古董连接一样,除了我的目标是让它工作而不是优化之外,我不是开发人员,也不是任何类型的编码器。我是新手,基本了解不多。由于现在一切都已清除,如果有人能给我一个有关此工作的示例或如何使其工作,我将不胜感激。它一直有效,直到几乎被忽略的 Exist 部分。队列被完全执行,但是就像我最后说的那样被忽略了。没有消息:这几乎是有效的/被执行的:
UPDATE TItem
SET type= 'newid'
FROM Titem x, TCharacter y
WHERE x.char_id = y.id
and x.type = 'oldid'
table1 'tcharacter'
| id | create date | mode |
Table2 'titem'
| type | Attr | char_ID |
id=char_id 这是他们共享相同数据的唯一列目标:如果 USER_ID 有 3rditem id,则队列应该被执行 -> 将旧 id 更新为 newid。这是我解释它的一种方式。我在下面尝试的是在检查 user_id 是否存在第二个 itemid 时尝试更新 ID。我试过的:
UPDATE TItem
SET type= 'newid'
FROM Titem x, TCharacter y
WHERE x.char_id = y.id
and x.type = 'oldid'
and EXISTS
(SELECT type = '2nd id' FROM Titem WHERE x.char_id = y.id);
我尝试过的新 IF 查询是无可非议的,它变得多么混乱,问题在于,无论该项目是否存在,只要它存在于数据库中一次,它就无关紧要,这会导致每个队列都被执行记录添加所有 x 和 y 规范显然没有任何结果,我做错了。
IF EXISTS (SELECT 1 FROM Titem as x, TCharacter as y WHERE x.type = '2nd id' AND x.char_id = y.id)
BEGIN
UPDATE Titem
SET type = 'mewid'
FROM dbo.TItem AS x, TCharacter AS y
WHERE x.char_id = y.id
and x.type = 'oldid'
END
我有两个文件,test.mdf 和 test.ldf,大小分别为 200 MB 和 200 MB。
我使用“附加数据库”选项恢复数据库,一切正常,但我发现某些表中有很多缺失的行。
我能做些什么?
我有以前 Windows 安装的所有文件,我读到 mdf 有未提交的更改,文件中的这些更改在哪里?
我需要找到一种方法来记录用户的所有脚本和查询(SELECT、INSERT、UPDATE、DELETE 和 EXEC)。
上下文:我想检查我的支持人员在数据库上执行了哪些类型的查询。此时,我要求他们复制粘贴他们在 Teams 频道中运行的每个脚本,但我想放松一下并使用自动化系统。这些用户使用他们在数据库上的帐户登录。我可以识别它们。
当我们在 SQL Server 2008 R2 实例上运行它时,每次都会导致严重性 20 错误。它在我们的 SQL Server 2016 实例上没有这个问题。
询问:
DECLARE @v varchar(MAX) = REPLICATE(CONVERT(varchar(max),'a'),524289);
SELECT @v = @v FROM(SELECT 1 AS a) AS b;
结果:
Location: tmpilb.cpp:3256
Expression: fNoReaderWriterConflict
SPID: 90
Process ID: 1576
Location: tmpilb.cpp:3306
Expression: fNoReaderWriterConflict
SPID: 90
Process ID: 1576
Msg 3624, Level 20, State 1, Line 4
A system assertion check has failed. Check the SQL Server error log for details. Typically, an assertion failure is caused by a software bug or data corruption. To check for database corruption, consider running DBCC CHECKDB. If you agreed to send dumps to Microsoft during setup, a mini dump will be sent to Microsoft. An update might be available from Microsoft in the latest Service Pack or in a QFE from Technical Support.
Msg 0, Level 20, State 0, Line 0
A severe error occurred on the current command. The results, if any, should be discarded.
SELECT @@VERSION
:
Microsoft SQL Server 2008 R2 (SP3) - 10.50.6000.34 (X64)
Aug 19 2014 12:21:34
Copyright (c) Microsoft Corporation
Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor)
SQLDump0002.txt(来自非生产服务器):
Computer type is Intel(R) Xeon(R) CPU E5430 @ 2.66GHz.
Bios Version is DELL - 1
Phoenix ROM BIOS PLUS Version 1.10 2.5.0
8 X64 level 8664, 2 Mhz processor (s).
Windows NT 6.1 Build 7601 CSD Service Pack 1.
Memory
MemoryLoad = 87%
Total Physical = 32762 MB
Available Physical = 4058 MB
Total Page File = 65524 MB
Available Page File = 27332 MB
Total Virtual = 8388607 MB
Available Virtual = 8355194 MB
**Dump thread - spid = 0, EC = 0x00000003EF7E5F00
这是此版本 SQL Server 2008 R2 中的错误吗?
更新:
我们最终计划关闭我们最后一个 SQL Server 2008 R2 服务器。在我们继续之前,我们需要跟踪哪些用户正在连接到哪些数据库。我们尝试了不同的选项,例如使用 SQL 审计和检查错误日志中的登录,但所有这些都缺少连接到哪个数据库的信息。我们也考虑过使用 LOGON 触发器,但由于它是在用户登录到实例时触发的,所以它不会跟踪用户之后是否更改数据库。
在较新的版本中,我使用扩展事件进行此类审核,但此数据库版本中尚不提供 sqlserver.login 事件。似乎应该可以为此使用 Profiler,但我担心专门在这台旧服务器上持续运行跟踪。是否还有其他我错过的选项或者 Profiler 是唯一的选项?