`

在合适的场合使用 with (nolock) 提升查询性能

阅读更多
这里说的with(nolock)是指sql查询中的with选项,例如:

select * from t1 with(nolock) where a = 'xx'

with(nolock)的意思是查询时不考虑任何锁,可能脏读。虽然可能脏读,但是会带来性能的提升。 在一些不需要考虑脏读的场合会用到,例如我刚刚使用的场合,当用户在论坛发广告贴时删除其所有发帖,这个查询就不怕脏读,全删,或者漏一个正在发的都不是问题。

关于with的选项还有很多,可以指定锁表,锁行,指定查询时使用某个索引,等等。

具体请参考:http://msdn.microsoft.com/en-us/library/ms187373.aspx

1
2
分享到:
评论

相关推荐

    EFCore.SqlServer.WithNoLock

    标题“EFCore.SqlServer.WithNoLock”涉及到的是在C#编程环境中使用Entity Framework Core(简称EF Core)与SQL Server数据库进行交互时,如何利用“WITH (NOLOCK)”提示来提高查询性能。这是一个针对数据库事务隔离...

    SQL Server的WITH (NOLOCK)

    缺点:  1.会产生脏读  2.只适用与select查询语句  优点:  1.有些文件说,加了WITH (NOLOCK)的SQL...其实除了index的建立之外,当我们在下SQL Command时,在语法中加一段WITH (NOLOCK)可以改善在线大量查询的环

    sql server 性能优化之nolock

    然而,除了索引优化,使用`WITH (NOLOCK)`或`NOLOCK`也可以帮助减少锁竞争,提升查询效率。在SQL命令中添加`WITH (NOLOCK)`,可以防止数据集在大量并发查询时被锁定,降低系统资源消耗,从而提高整体性能。 然而,`...

    sqlserver中with(nolock)深入分析

    在非严格事务处理环境中,如果业务逻辑能够接受偶尔的不一致,`NOLOCK`可以帮助提高查询性能,减少等待锁的时间。然而,这种做法可能导致数据的可见性和一致性受到破坏。 相反,`READPAST`提示使查询跳过被其他事务...

    Laravel开发-nolock

    然而,如果在读取数据时使用了`WITH(NOLOCK)`这样的SQL提示符,那么可以实现无锁读取,这在大数据查询或低并发环境下可能是一个有效的优化策略。 无锁读取(NOLOCK)的使用需谨慎,因为它可能会读取到未提交的数据...

    快速提升性能的SQL语句.pdf

    12. **使用数字类型字段**:数值信息字段应尽量避免设计为字符类型,以节省存储空间和提升查询性能。 13. **优先使用变长字段**:使用varchar和nvarchar代替char和nchar,减少存储需求且提高查询效率。 14. **明确...

    sql server 性能优化(生产中常用)

    在某些只读操作或者对数据一致性要求不是非常严格的场景中,可以使用NOLOCK来提升查询性能。 27. 分析函数(窗口函数) 窗口函数是SQL Server中非常强大的功能,它允许开发者在查询中进行更复杂的数据聚合操作。...

    使用NOLOCK提示时应考虑的事项

    9. **查询优化**:在使用`NOLOCK`之前,应先尝试通过优化查询语句、创建索引、调整数据库结构等方法提高性能,避免依赖于可能带来问题的`NOLOCK`。 10. **事务设计**:合理设计事务边界,确保事务内的操作具有原子...

    sql server ,mysql,starrocks性能对比.docx

    本文旨在通过实际场景下的性能测试来对比SQL Server、MySQL以及StarRocks这三种数据库管理系统在处理相同查询时的表现。测试环境分别为: - **SQL Server**:209莱芜农引WinServer系统,8核2.1GHz CPU,32GB内存。 ...

    SQL Server SQL优化

    在查询时仅返回部分记录可以显著提升查询速度,特别是在处理大数据集时尤为明显。 - **推荐做法**:在满足需求的前提下,使用`TOP`限制返回结果的数量,如`SELECT TOP 1 * FROM A WITH (NOLOCK)`。 - **不推荐做法*...

    SQL Server 2000优化SELECT语句方法

    在SQL Server 2000中,优化SELECT语句对于提升数据库性能至关重要。本文主要探讨了几个关键的优化方法和工具,旨在帮助开发者和DBA理解如何改进查询效率。 首先,SET STATISTICS IO是一个用于检查查询I/O活动的实用...

    C语言算法(nolock)

    接着,底层编程部分深入到汇编语言级别,探讨了寄存器操作、内存管理、错误检测和时间管理等底层操作,这些是高级程序设计的基础,对于提升程序的效率和性能至关重要。 汉诺塔问题展示了递归思维在算法中的应用,...

    thread_nolock

    在IT行业中,多线程和无锁编程是高级并发编程的重要组成部分,特别是在高并发系统和实时系统的开发中。本文将围绕“thread_nolock”这一主题,深入探讨无锁编程的概念、优势,以及与传统锁机制的对比,同时通过分析...

    实战:上亿数据如何秒查.pdf

    作者强调了几个要点,如尽可能使用临时表扫描,避免`IN`操作,确认模糊查询的需求,合理设置索引,避免使用`*`通配符,以及在不影响业务的情况下,对于非实时要求的报表,可以考虑使用`WITH (NOLOCK)`来允许脏读,...

    SQL SERVER数据库脚本开发规范

    * Where 子句中的条件按照精度从高到底依次排列:使用合适的 Where 子句条件,以提高查询性能。 * 尽量避免使用游标 Cursors:使用游标 Cursors 可能会导致性能下降。 * SET NOCOUNT ON 语句:使用 SET NOCOUNT ON ...

    SqlSugar框架的学习使用

    3、支持NOLOCK查询,提高性能 4、支持事务 5、内置实体类生成函数,无需使用第三方代码生成器 6、简单好用、例子齐全有问必答。 7、支持.NET CORE 和 MySql、SqlServer、Sqlite、Oracle 、 postgresql 、达梦、...

    50种方法巧妙优化你的SQL Server数据库

    32. **使用WITH (NOLOCK)**提示**:对于读取操作,使用`WITH (NOLOCK)`提示可以减少锁定等待时间。 33. **使用索引提示**:在必要时使用索引提示来强制查询优化器使用特定的索引。 34. **使用数据库引擎调优顾问**...

    sqlserver数据库优化总结的资料

    6. **死锁和阻塞**:数据库中的并发控制可能导致死锁和阻塞问题,需要通过调整事务隔离级别、合理设计事务、使用WITH(NOLOCK)提示等方式来减少这些问题。 7. **分区表**:对于大型表,使用分区可以提高数据的读写...

Global site tag (gtag.js) - Google Analytics