119得票3回答
每次都创建事务是一种不好的做法吗?

总是创建事务是一种不好的做法吗? 举个例子,为了仅仅执行一个简单的 SELECT,创建事务是一种好的做法吗? 当事务并非真正必要时,创建事务会带来多大的成本呢? 即使你使用了像 READ UNCOMMITTED 这样的隔离级别,这是否也是一种不好的做法?

80得票5回答
如果我们在 SQL Server 中启用“读已提交快照”,会有哪些风险?

我已经在这里读到,每行将存储一些额外的数据,因此我们可能会看到性能降低,但还有哪些风险? 例如。 这会影响数据库的恢复吗? 我们需要做其他什么才能利用这一点吗? 我计划执行这些命令: ALTER DATABASE DatabaseName SET READ_COMMITTED_SNAPS...

46得票9回答
被要求不使用事务,并使用一种变通方法来模拟事务。

我已经开发T-SQL数年,并一直深入挖掘,继续学习语言的各个方面。最近我开始在一家新公司工作,收到了一个我认为很奇怪的有关事务的建议。永远不要使用它们。相反,使用模拟事务的解决方法。这是来自我们的DBA的建议,他在一个具有大量事务和随之而来的大量阻塞的数据库中工作。我主要工作的数据库没有遇到这...

38得票2回答
我可以选择在同一个未提交事务中插入的数据吗?

也许这是一个愚蠢的初学者问题,但我无论在哪里都找不到答案。我在阅读关于“事务隔离”的内容时,处处都提到解决并发事务中数据可见性的问题。我的担忧是在单个事务中的行为。 如果我开始一个事务,插入一些数据,我能否在同一个尚未提交的事务中立即选择它们? 如果是的话,在并发事务的情况下,这种行为是否可...

31得票1回答
触发器与事务的组合

假设我们有以下情况: 我们有一个表(假设为Table_A),在其上有一个触发器(trigger)来处理INSERT操作。触发器的任务是根据Table_A中插入的值来更新table_B中的某些行。 现在,当我们简单地向表中插入一行数据时,一切都正常。但是如果通过事务插入数据呢?触发器会等待所...

30得票4回答
如何找出谁删除了SQL Server中的某些数据 要找出在SQL Server中删除了某些数据的人,可以采取以下步骤: 1. 查看数据库日志:SQL Server会记录所有对数据库的更改操作,包括删除数据。通过检查数据库的事务日志,您可以找到已删除数据的相关信息。 2. 使用系统函数:SQL Server提供了一些系统函数,可以帮助您查找删除操作的相关信息。例如,使用fn_dblog函数可以分析数据库日志并显示删除操作的详细信息。 3. 考虑审计功能:SQL Server还提供了审计功能,可用于跟踪和监视对数据库的操作。通过启用审计功能,并设置适当的跟踪策略,您可以捕获和记录删除操作的相关信息。 4. 检查登录凭据:如果有多个用户访问数据库,您可以检查每个用户的登录凭据,以确定是否有权限删除数据。 5. 调查其他相关信息:除了上述方法外,您还可以与相关人员进行沟通,询问他们是否知道有关删除数据的任何信息。这可能涉及与数据库管理员、开发人员或其他相关人员的交流。 请注意,以上方法仅供参考,并且最终结果可能受到不同因素的影响。建议在实施任何操作之前,先备份数据库以防止数据丢失或损坏。

我的老板昨天收到一个客户的查询,询问如何找出谁在他们的SQL Server数据库中删除了一些数据(如果有关系的话,这是Express版本)。 我认为可以从事务日志中找到这个信息(前提是它没有被截断)- 这样做是正确的吗?如果是的话,具体如何查找这些信息呢?

30得票2回答
如何在一个存储过程中启动3个存储过程时进行回滚

我有一个存储过程,在其中只执行3个存储过程。我只使用1个参数来存储主存储过程是否成功。 如果第一个存储过程在主存储过程中运行良好,但第二个存储过程失败了,那么它会自动回滚主存储过程中的所有存储过程吗?还是我需要做一些命令? 这是我的存储过程: CREATE PROCEDURE [dbo]...

29得票1回答
MySQL事务大小 - 多大才算太大? MySQL事务大小是指在一个事务中执行的操作数量或数据量。事务的大小对数据库性能和可靠性都有影响,因此需要谨慎考虑。 事务过大可能导致以下问题: 1. 锁竞争:当事务涉及大量数据时,可能会导致锁竞争,降低并发性能。 2. 内存消耗:大事务需要占用更多的内存空间,可能导致内存不足或交换空间使用过多。 3. 回滚时间:如果事务失败或需要回滚,大事务需要更长的时间来完成回滚操作。 4. 数据库复制延迟:大事务可能导致数据库复制延迟,影响主从同步性能。 因此,确定事务大小的合理范围非常重要。具体的大小限制取决于数据库的硬件配置、负载情况和应用需求。一般来说,较小的事务更容易管理和维护,同时也可以提高并发性能。建议根据实际情况进行测试和优化,以找到最适合的事务大小。 总之,MySQL事务大小需要在保证数据库性能和可靠性的前提下进行合理控制。

我有一个定期运行的导入过程,我希望它是一种“全有或全无”的方式,也就是一个事务。 有许多方面,导入可能产生100,000到1,000,000多条记录。这相当于几MB到几百MB的数据负载。 我知道临时表是另一种选择,但这种方法似乎非常方便。 在提交之间进行大量数据操作时,有什么需要注意的问...

27得票2回答
MySQL的事务性DDL工作流程

我有点惊讶地发现,在MySQL中,DDL语句(如alter table、create index等)会隐式提交当前事务。作为来自MS SQL Server的人,能够在本地事务中进行数据库修改(然后回滚)是我工作流程中的重要部分。对于持续集成,如果迁移出现任何问题,回滚操作将被使用,以确保数据库...