首页
学习
活动
专区
圈层
工具
发布

写一手好SQL,你该从哪里入手?

有时候我们会遇到:在查询sql的时候,假如有100w条数据,会出现慢sql告警,这个时候你就应该到处sql日志来查找原因了。...这里很有可能的主要原因就是没有命中索引和没有分页处理(原因有很多种,主要分析你的日志)。那接下来我们就得去优化sql了。 **如何优化呢?下面我们来谈谈有关的问题。...一、从sql优化入手** 谈到sql性能优化,那我们就离不开谈到大数据量和并发数,MySQL没有限制单表的最大记录数,它只是取决于操作系统对文件大小的限制。...尽可能将NULL值用有意义的值代替,也能避免SQL语句里面包含is not null的判断。 text类型优化 由于text字段储存大量数据,表容量会很早涨上去,影响其他字段的查询性能。...四,sql语句如何优化 业务描述:更新用户所有已过期的优惠券为不可用状态。

3K20

SQL SERVER 时间换空间,空间换时间 以及什么是好SQL

先说问题,最近的SQL SERVER 内存消耗的厉害,在这之前是建立了一堆的索引,来提高查询的效率,内存的使用也在悄然的上涨...., 在一个负载过重的系统上,大型的查询无法获得所需要的内存的最小量,带来的就是处理这个SQL 的等待,而如果此时你的数据库还支持并行,POSTGRESQL ORACLE SQL SERVER ,等都支持并行...,此时的并行对于大型的查询并不会好到哪里去,而会让事情变得更糟糕,因为我本身内存不足,而你要并行处理,内存就更加的不足,加速I/O的压力。...在SQL SERVER 中如果得不到足够的内存,则查询可能会走另外的执行计划,并且会占用TEMP库(物理I/O)的方式处理,而性能就会走向另一个极端。...3 SQL 的复杂度,如果一个SQL 本身很复杂,那就要拆 关于第三个问题可能马上就有人问,我就喜欢写复杂的SQL 我又没有用MYSQL ,ORACLE SQL SERVER 不就是让人写复杂SQL

2.1K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    好的工作想法从哪里来

    提出论点 好的研究想法,兼顾摘果子和啃骨头。...两年前,曾看过刘知远老师的一篇文章《好的研究想法从哪里来》,直到现在印象依然很深刻,文中分析了摘低垂果实容易,但也容易撞车,啃骨头难,但也可能是个不错的选择。...初入团队,寻找自己的立足点,需要一个好的工作想法。每年末,抓耳挠腮做规划,想要憋出一个好的工作想法。很多同学,包括我自己,陆陆续续零零散散想到很多点,然后自己不断否掉。...人的三维+时间半维 具体如何找到好的想法,一时半会没有头绪。因此,回到最初的起点,从人的层面,我有什么?我想要有什么?...引用 好的研究想法从哪里来 杜跃进:数据安全治理的基本思路 来都来了。

    13.5K40

    SQL好的写法

    要知道sql语句,我想我们有必要知道sqlserver查询分析器怎么执行我么sql语句的,我么很多人会看执行计划,或者用profile来监 视和调优查询语句或者存储过程慢的原因,但是如果我们知道查询分析器的执行逻辑顺序...如果我们我们了解了sqlserver执行顺序,那么我们就接下来进一步养成日常sql好 习惯,也就是在实现功能同时有考虑性能的思想,数据库是能进行集合运算的工具,我们应该尽量的利用这个工具,所谓集合运算实际就是批量运算...,就是尽量减少 在客户端进行大数据量的循环操作,而用SQL语句或者存储过程代替。  ...--允许重复数据用UNION ALL好   C、注意使用DISTINCT,在没有必要时不要用   D、TRUNCATE TABLE 与 DELETE 区别   E、减少访问数据库的次数   还有就是我们写存储过程...我们可以用回滚来调试我们的存储过程或者是sql语句,从而排错。

    1.7K20

    【SQL Server】变量的使用

    变量的分类 局部变量:(仅在过程中使用) 局部变量必须标记@作为前缀,如@age。 局部变量的使用也是先声明(使用declare),再赋值。...场景示例 下面以一个场景来使用定义变量,有如下的一个表结构,表名称为Students,现在要查询李铭及其学号相邻的学员。...表达式未返回值时 变量被赋NULL值 变量保持原值 全局变量的使用 变量 含义 @@ERROR 最后一个T-SQL错误的错误号 @@IDEENTITY 最后一次插入的标识值 @@LANGUAGE 当前使用的语言的名称...@@MAX_CONNECTIONS 可以创建的同时连接的最大数目 @@ROWCOUNT 受上一个SQL语句影响的行数 @@SERVERNAME 本地服务器的名称 @@TRANSCOUNT 当前连接打开的事务数...@@VERSION SQLServer的版本信息

    1.5K10

    _SQL Server 服务的启动

    前言:        要是还没安装SQL Server的读者,可以点击卡片连接去看教程。...SQL Server 下载安装教程_吴成伟0122的博客-CSDN博客SQL Server 2017下载安装教程第一步:打开浏览器,在浏览的搜索框中我们输入“SQL Server”。...找到SQL Server 数据库服务可以看到 SQL Server(MSSQLSERVER) 这个服务, 这就是数据库的服务。 其中MSSQLSERVER 是数据库的 ID。...因为我的机器内存不够,平时不用SQL Server 数据库的时候我希望不要启动它,不要占用我的内存,所以我设成手动。...三、修改 SQL Server 服务的启动方式如果想每次启动电脑都自动启动 SQL Server 服务,则需要将这个服务设置成自动启动。1. 右键点击服务,点击属性2.

    86500

    SQL Server的索引碎片

    SQL Server中,索引碎片有2种形式:外部碎片和内部碎片,不管哪种碎片基本上都会影响索引内页的使用。 1. 外部碎片 当索引页不在逻辑顺序上时就会产生外部碎片。...view=sql-server-ver15 其中, FAST选项指定执行索引的快速扫描,输出结果是最小的,该选项不读索引的叶或数据页且只返回扫描页数、扫描扩展盘区数、扫描密度[最佳值:实际值]、逻辑扫描碎片...当然还可以使用客户端工具SQL Server Management Studio,可视化地看碎片, 解决碎片问题,可以有几种操作, 1....DBCC DBREINDEX DBCC DBREINDEX类似于第二种方法,但他物理地重建索引,允许SQL Server给索引分配新页来减少内部和外部碎片。........................: 169.2 - 平均页密度(满).....................: 97.91% SQL Server的操作,还是不太熟悉,网上有些朋友,将以上的检测

    2.4K30

    SQL Server 服务的启动

    右键点击 SQL Server 服务,选择启动 三、修改 SQL Server 服务的启动方式 1. 右键点击服务,点击属性 2....SQL Server 下载安装教程_吴成伟0122的博客-CSDN博客SQL Server 2017下载安装教程第一步:打开浏览器,在浏览的搜索框中我们输入“SQL Server”。...找到SQL Server 数据库服务 可以看到 SQL Server(MSSQLSERVER) 这个服务, 这就是数据库的服务。 其中 MSSQLSERVER 是数据库的 ID。...因为我的机器内存不够,平时不用SQL Server 数据库的时候我希望不要启动它,不要占用我的内存,所以我设成手动。...三、修改 SQL Server 服务的启动方式 如果想每次启动电脑都自动启动 SQL Server 服务,则需要将这个服务设置成自动启动。 1. 右键点击服务,点击属性 2. 选择启动类型为自动

    2.1K10

    配置SQL Server 2005 Express的Windows和SQL Server身份验证

    摘 要: 如何安装SQL Server 2005 Express、SQL Server Management Studio Express,以及配置SQL Server 2005 Express的身份验证方式...下面,我将其对我们用的配置信息摘录如下: 配置和管理 SQL Server Express 为提高可管理性和安全性,SQL Server 2005 对系统上的 SQL Server 外围应用进行了更严格的控制...安装完后,我们可以看到如下的开始菜单项: 它包含三个配置工具,我们今天等下要用到“SQL Server配置管理器”和“SQL Server外围应用配置器”。...为了工作组环境下不使用不方便的Windows集成安全验证,我们要启用SQL Server 2005 Express的混合安全验证,也就是说由SQL Server来验证用户而不是由Windows来验证用户...当我们启动SQL Server Management Studio Express时,首先它要连接到我们的SQL Server 2005 Express,我们在安装SQL Server 2005 Express

    3.6K30

    SQL Server 数据误删的恢复

    本文将详细介绍如何在 SQL Server 中进行数据的备份和恢复操作,特别是在发生数据误删的情况下。假设我们已经开启了全量备份,并且在误操作之前有一个全量备份文件。一、模拟误删1....创建表并插入测试数据首先,我们需要创建一个名为 "Test" 的数据库,并在其中创建一个名为 "Student" 的表。该表将包含一些测试数据。SSMS 连接本地 SQL Server。...三、SQL Server 数据误删总结通过本文的介绍,我们学习了如何在 SQL Server 中进行数据的备份和恢复操作,特别是在数据误删的情况下。...SQL Server 提供了多种备份策略,包括:完全备份:备份整个数据库的所有数据。这种备份方式最为全面,但也最耗时和占用空间最多。差异备份:备份自上次完全备份以来所有更改的数据。...希望本文对大家在日常的数据库管理工作中有所帮助。3. 本文参考资料SQL Server 官方文档SQL Server Management Studio 使用手册

    3.3K66

    SQL Server 中的死锁检测

    从 SQL Server 2012 (11.x) 开始,xml_deadlock_report应使用扩展事件 (xEvent),而不是 SQL 跟踪或 SQL 事件探查器中的死锁图事件类。...同样从 SQL Server 2012 (11.x) 开始,当发生死锁时,system_health会话已捕获xml_deadlock_report包含死锁图的所有 xEvent。...方法如下:右击,筛选器里面填写下面的过滤条件最后一条这个就是刚才我们模拟的死锁的日志记录可以看到sql明细也可以使用下面的sql, 以下查询可以查看system_health会话环形缓冲区捕获的所有死锁事件...参考:https://learn.microsoft.com/en-us/sql/relational-databases/sql-server-deadlocks-guide?...view=sql-server-ver16https://www.mssqltips.com/sqlservertip/5658/capturing-sql-server-deadlocks-using-extended-events

    4.6K10

    SQL Server检索SQL和用户信息的需求

    Oracle中如果需要知道一条SQL是谁执行的,可以通过v$sql的parsing_schema_name字段得到登录的schema名称,相当于SQL和会话登录信息是有绑定的。...但是最近有个SQL Server的需求,需要知道历史SQL的执行者。...如下SQL,可以找到当前SQL Server跑过的SQL,但是没用户信息, SELECT p.refcounts, p.usecounts, sqltext.text  FROM sys.dm_exec_cached_plans...view=sql-server-ver15 但是能和sys.dm_exec_sql_text关联起来的只有database_id,如下得到的应该是个笛卡尔积,并未将SQL和login_name用户的信息关联起来...咨询了大师,给到的回复是,SQL Server不能通过DMV视图来查询某一个会话执行过的历史SQL,只能采集当前会话正在执行的SQl,不断采集然后保存下来才行。

    2.1K30

    SQL Server 2005的负载均衡

    SQL Server 2005仍然不直接地支持负载均衡——但是它为以前SQL Server版本中可用的所有负载均衡方法提供了令人激动的改善和支持。  ...在以前的发布中,修改复制的对象的计划需要关机时间。但是在SQL Server 2005中就不是这样的情况了。...表分割   分布式分区视图的工作方式在SQL Server 2005中与以前版本中的工作方式相同。...数据库镜像和快照 SQL Server 2005引入了数据库镜像的概念来帮助获得高可用性。特别提醒的是,只要它正是发布了,数据库镜像就可以在SQL Server 2005上使用。...数据库快照是SQL Server 2005中引入的另一项特性。快照是某一个时间点上的数据库的克隆。只要你的镜像的数据库进行了快照,你就可以让用户查询快照。

    1.5K100

    查找 SQL Server 的上次重启

    在本提示中,我们将介绍如何获取 SQL Server 实例的启动时间的各种方法。...方法 2:使用 SQL Server 错误日志查找 SQL Server 的上次启动时间如果在 SSMS 的“ 管理 >”SQL Server 日志下打开当前 SQL Server 错误日志,并滚动到错误日志的底部...下面是来自其他 SQL Server 实例的循环错误日志的示例,并记下突出显示的文本。如果您看到此内容,则需要查看以前的错误日志,直到找到包含上图中信息的日志。...要在 SQL Server 错误日志中查找的另一条消息是“此 SQL Server 实例一直使用进程 ID 为...”这将提供如下日期。如果回收错误日志,此方法将很有帮助。...方法 3:使用仪表板报告查找 SQL Server 的上次开始时间另一种选择是使用 SQL Server 仪表板报表。

    27810
    领券