总是创建事务是一种不好的做法吗? 举个例子,为了仅仅执行一个简单的 SELECT,创建事务是一种好的做法吗? 当事务并非真正必要时,创建事务会带来多大的成本呢? 即使你使用了像 READ UNCOMMITTED 这样的隔离级别,这是否也是一种不好的做法?
我已经在这里读到,每行将存储一些额外的数据,因此我们可能会看到性能降低,但还有哪些风险? 例如。 这会影响数据库的恢复吗? 我们需要做其他什么才能利用这一点吗? 我计划执行这些命令: ALTER DATABASE DatabaseName SET READ_COMMITTED_SNAPS...
我已经开发T-SQL数年,并一直深入挖掘,继续学习语言的各个方面。最近我开始在一家新公司工作,收到了一个我认为很奇怪的有关事务的建议。永远不要使用它们。相反,使用模拟事务的解决方法。这是来自我们的DBA的建议,他在一个具有大量事务和随之而来的大量阻塞的数据库中工作。我主要工作的数据库没有遇到这...
也许这是一个愚蠢的初学者问题,但我无论在哪里都找不到答案。我在阅读关于“事务隔离”的内容时,处处都提到解决并发事务中数据可见性的问题。我的担忧是在单个事务中的行为。 如果我开始一个事务,插入一些数据,我能否在同一个尚未提交的事务中立即选择它们? 如果是的话,在并发事务的情况下,这种行为是否可...
假设我们有以下情况: 我们有一个表(假设为Table_A),在其上有一个触发器(trigger)来处理INSERT操作。触发器的任务是根据Table_A中插入的值来更新table_B中的某些行。 现在,当我们简单地向表中插入一行数据时,一切都正常。但是如果通过事务插入数据呢?触发器会等待所...
我的老板昨天收到一个客户的查询,询问如何找出谁在他们的SQL Server数据库中删除了一些数据(如果有关系的话,这是Express版本)。 我认为可以从事务日志中找到这个信息(前提是它没有被截断)- 这样做是正确的吗?如果是的话,具体如何查找这些信息呢?
我有一个存储过程,在其中只执行3个存储过程。我只使用1个参数来存储主存储过程是否成功。 如果第一个存储过程在主存储过程中运行良好,但第二个存储过程失败了,那么它会自动回滚主存储过程中的所有存储过程吗?还是我需要做一些命令? 这是我的存储过程: CREATE PROCEDURE [dbo]...
我有一个定期运行的导入过程,我希望它是一种“全有或全无”的方式,也就是一个事务。 有许多方面,导入可能产生100,000到1,000,000多条记录。这相当于几MB到几百MB的数据负载。 我知道临时表是另一种选择,但这种方法似乎非常方便。 在提交之间进行大量数据操作时,有什么需要注意的问...
ADO.NET文档显示可以将SQL事务的事务级别设置为Chaos。听起来不太愉快,但如果这个功能存在,想必它有一些合法的用途。 在BOL中的SET TRANSACTION ISOLATION LEVEL命令(啊!看吧,我会用谷歌和BOL)似乎没有名为"chaos"的东西,而ADO.NET确实...
我有点惊讶地发现,在MySQL中,DDL语句(如alter table、create index等)会隐式提交当前事务。作为来自MS SQL Server的人,能够在本地事务中进行数据库修改(然后回滚)是我工作流程中的重要部分。对于持续集成,如果迁移出现任何问题,回滚操作将被使用,以确保数据库...