首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏老虎刘谈oracle性能优化

    区间检索SQL优化--续

    在2017-07-16的文章 区间检索SQL性能优化方法 中,我使用了创建function的方式,来解决匹配不到区间时的buffer gets过多的性能问题。 最近在解决一个客户的多表关联区间检索问题时,又琢磨了一下,发现还是可以直接使用SQL,替代原来的function,SQL还真是博大精深啊。 COUNTRY_CODE FROM COUNTRY_IP_RANGE WHERE end_ip1 >:B1 and start_ip1 <= :B1 and rownum=1; 优化写法,原function的替代SQL 注: 变量如果超出COUNTRY_IP_RANGE表end_ip1的最大范围,sql会返回"no rows selected";最大范围内匹配不到区间,则返回"no_match"(这与普通写法不一样 索引失效时sql可以慢,但是不可以出错。

    35230编辑于 2022-06-22
  • 来自专栏数据和云

    区间检索SQL性能优化方法

    个人微信公众号:sql_tigerliu. 几年前,有朋友让我帮忙优化一个SQL:根据IP地址查询对应的国家/地区(根据号码查询归属地也属类似业务)。 SQL代码如下: Select country_code From COUNTRY_IP_RANGE IP WHERE IP.Start_Ip1 <= ip_to_number1(:ip) AND SQL每次最多只返回一条记录。 优化方法 1、首先根据业务规则,增加一个rownum=1的谓词条件,SQL变成: Select country_code From COUNTRY_IP_RANGE IP WHERE IP.Start_Ip1 但是光靠SQL本身已经无能为力。

    1.3K60发布于 2018-03-07
  • 来自专栏老虎刘谈oracle性能优化

    区间检索SQL性能优化方法

    几年前,有朋友让我帮忙优化一个SQL:根据IP地址查询对应的国家/地区(根据号码查询归属地也属类似业务)。 SQL代码如下: Select country_code From COUNTRY_IP_RANGE IP WHERE IP.Start_Ip1 <= ip_to_number1(:ip) AND SQL每次最多只返回一条记录。 但是光靠SQL本身已经无能为力。 老虎刘会把那些年优化的SQL(有代表性的)总结出来与SQL优化爱好者分享

    53220编辑于 2022-06-22
  • 来自专栏bisal的个人杂货铺

    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 咨询了大师,给到的回复是,SQL Server不能通过DMV视图来查询某一个会话执行过的历史SQL,只能采集当前会话正在执行的SQl,不断采集然后保存下来才行。 无论从监控粒度,还是数据统计的角度,SQL和用户信息关联检索还是有用的,可以做到更精细的控制,不太清楚为什么微软官方没给出这样的设计,或者有其他隐藏的功能?

    1.7K30编辑于 2022-04-23
  • 来自专栏捞月亮的小北

    9. 动态SQL

    Mybaits 框架的动态 SQL 技术是一种根据特定条件动态拼接 SQL 语句的功能 , 它存在的意义是为了解决拼接 SQL 语句字符串时的痛点问题 ‍ Mybatis 中动态 SQL 怎么理解? 同时,也需要注意 SQL 注入和动态 SQL 的维护难度问题。 SQL 片段的作用是将常用的 SQL 语句封装成一个可重用的组件,方便在多个地方使用。 Mybatis 中的 SQL 片段有两种类型: 动态 SQL 片段:根据不同的条件生成不同的 SQL 语句。 6.2 SQL 片段的作用 ‍ SQL 片段(SQL Fragments)是 Mybatis 中一个重要的功能,它的作用是将一段 SQL 片段用 <sql>​ 元素封装,并在需要的地方通过 <include 减小 SQL 的维护难度:将一段 SQL 代码封装成 SQL 片段,可以方便维护和修改,避免了对 SQL 语句的重复修改和维护。

    49210编辑于 2023-12-01
  • 来自专栏GreenLeaves

    SQL学习之空值(Null)检索

    这个时候我们需要检索CheckValueString列为NULL值,ResultRemarks(该字段为空的记录) 我会这么写代码 select * from T_Check_InfoDetail where

    2.5K90发布于 2018-01-24
  • 9SQL优化技巧

    大多数的接口性能问题,很多情况下都是SQL问题,在工作中,我们也会定期对慢SQL进行优化,以提高接口性能。这里总结一下常见的优化方向和策略。 避免使用select *,减少查询字段不要为了图省事,直接查询全部的字段,尽量查需要的字段,特别是复杂的SQL,能够避免很多不走索引的情况。这也是最基本的方法。 避免使用左模糊查询在工作中,对于姓名、手机号、名称等内容,经常会遇到模糊查询的场景,但是要尽量避免左模糊,这种SQL无法使用索引。 join的优化JOIN 是 SQL 查询中的一个操作,用于将两个或多个表连接在一起。JOIN 操作有几种类型,包括 LEFT JOIN、RIGHT JOIN 和 INNER JOIN。 我们日常使用较多的分页一般是用的PageHelper插件,SQL如下:sql复制代码select id,name from table_name where N个条件 limit 100000,10;它的执行流程

    1.2K10编辑于 2024-05-21
  • SQL入门教程(2):怎么用SQL做基础信息检索?

    在上一篇文章中,我们介绍了 SQL(结构化查询语言)的基本概念,以及它在用户研究中的重要作用。 今天,我们将深入了解 SQL 的基本语法,并通过实际应用场景帮助你更好地理解如何使用 SQL 提取和分析数据。 对于刚开始学习 SQL 的用户研究者来说,掌握这些基础语法和应用技巧,将为你的数据分析工作奠定坚实的基础。 1.SQL基础语法SQL 是一种声明性语言,意味着你只需要告诉它你想做什么,SQL 会帮你去做。在 SQL 中,常用的语法主要包括数据查询、数据过滤、数据排序、数据分组等基本操作。 掌握 SQL 的基本语法和应用场景后,你将能够更精准地分析用户数据,得出有价值的研究结论。无论是用户行为分析、用户细分、留存率分析,还是满意度调查,SQL 都是你必不可少的工具。

    62710编辑于 2024-12-05
  • 来自专栏一个爱吃西瓜的程序员

    学习SQL9】-集合与联结

    现在我们开始学习使用2张以上的表的SQL语句。通过以行方向为单位的集合运算符和以列方向为单位的联结,就可以将分散在多张表中的数据组合成期望的结果。 SQL中的联结有很多种,我们主要学习内联结和外联结两种。 内联结—INNER JOIN 内联结(INNER JOIN)是运用最广泛的联结运算。 SP.shop_name, SP.product_id, P.product_name FROM ShopProduct AS SP CROSS JOIN Product AS P; 上述的SQL

    1.5K120发布于 2018-04-04
  • 来自专栏大数据杂货铺

    使用检索增强生成 (RAG) 增强 SQL 代理

    在上一篇文章中,我们深入探讨了构造 SQL 代理的过程,以帮助我们通过查询数据库中的数据来回答问题。在本文中,我们将探讨如何通过合并高级分析功能来增强 SQL 代理的功能。 检索增强生成 (RAG) 为了便于您的代理了解如何使用这些功能,我建议采用一种称为检索增强生成 (RAG) 的技术。 此方法有助于根据查询查找相关说明。 此外,我们还讨论了创建一个 RAG 来检索相关的语法指令信息。现在,让我们探讨如何无缝集成这两个组件。 RAG 作为工具 在这篇博客中,我详细介绍了 如何利用SQL 代理与数据库交互等工具。 现在,我的想法是将 RAG 指定为另一个工具sql_db_list_tables。这允许 SQL 代理决定何时浏览相关文档,并在需要时确定最合适的关键字进行搜索。 保持说明清晰至关重要,以确保 SQL 代理了解该工具的用途。

    1.1K10编辑于 2024-04-02
  • 来自专栏bisal的个人杂货铺

    SQL Cookbook》 - 第一章 检索数据

    朋友推荐了一本书《SQL Cookbook》,翻译过来就是《SQL经典实例》,讲的都是SQL编写层面的案例,例如获得随机数、NULL值判断、求中位数、日期计算等,都是日常工作中可能用到的,但是有些知识点可能稍微模糊 ,用的时候,得琢磨下,或者有些知识点不了解,你不知道通过SQL还可以实现某个功能,借此机会,系统回顾一下SQL相关的开发技能,争取了解之前不知道的,巩固之前模糊的知识点,跟大家共享读书笔记。 第一章 检索数据 1. 在SELECT语句中指定具体的列名,可以确保查询语句不会返回无关的数据。当在整个网络范围内检索数据时,这样做更重要,因为他避免了将时间浪费在检索不需要的数据上。 2. 新的列名被称作别名,他会让检索结果更易于理解,对于一些数据库,可以省略AS关键字,但所有的数据库都支持这个关键字。 3. 9.

    1.2K20发布于 2021-09-06
  • 来自专栏Tripod

    SQL检索MongoDB的轻量级解决方案

    关于使用SQL访问MongoDB的解决方案,网络上已经可以查到很多。 本文将介绍一种由MOQL-Transx开源项目提供的采用sql检索MongoDB的轻量级解决方案。 MOQL-Transx是一个致力于减少开发者学习成本,用SQL语法检索各类数据库的开源项目。 项目包括两个模块,moql-translator用于完成从MOQL(SQL92语法子集)到各类数据库DSL的翻译;moql-querier用于完成对各类数据库以SQL语言检索并获得二维结果的输出。 由于MongoDB并没有一个完整意义上的DSL,故本文介绍的部分主要是使用moql-querier中的MongoDBQuerier类来完成对MongoDB的检索

    1.6K20编辑于 2022-02-28
  • 来自专栏机器学习/数据可视化

    SQL进阶-9-谓词exists使用

    SQL进阶-9-EXISTS谓词的使用 支撑SQL和关系数据库的两个重要理论基础: 数学领域的集合论 现代逻辑学标准体系的谓词逻辑(predicate logic) 本文中重点介绍的是谓词exists的用法 SQL实现 假设所有人都参加了全部的会议,生成了一个集合,再用该集合减去现有的数据即可。 ,col10); -- 查询至少存在一个9的行记录:any select * from Tablename where 9 = any (col1, col2, col3,... ,col10); -- where 9 in (col1, col2, col3,... ,col10) is null; 小结 SQL谓词指的是返回值为真值的函数 EXISTS与其他谓词不同,接受的参数是集合;可以看做是一种高阶函数 SQL中没有实现全称量词相当的谓词,但是可以通过not

    1.4K20发布于 2021-03-01
  • 来自专栏bisal的个人杂货铺

    SQL中用到LIKE模糊检索的几种优化场景

    SQL开发中经常会碰到使用LIKE模糊检索的场景,'%'的位置,可能影响索引的正常使用,看到刘老师公众号的一篇文章,介绍了相关场景的改造策略,非常受用,推荐阅读。 ,无法直接通过索引定位数据,只是因为检索列只有object_name,所以用到的是索引快速全扫描,实际还是扫描的所有索引叶子节点, 为了说明清楚,我们检索object_id列,他不在索引中, select (3) ABC在字符串中位置不固定,可以通过改写SQL进行优化。 第一种情况,ABC始终从字符串开始的某个固定位置出现。 可以通过substr函数截取字符串的功能,创建函数索引。 substr(object_name, 1, length(object_name)-4)) like reverse ('%BISAL'); 第三种情况,ABC在字符串中位置不固定,可以通过改写SQL 但是这种IN改写,如果子查询返回的记录数较少,执行效率就可能提高了N倍,但如果较多,改写的效率,可能和之前相差不大了, 虽然以上的'%'有各种改造的方案,但至少都得改写一些SQL,所以还是建议,从需求层面

    2.2K10编辑于 2022-02-18
  • 来自专栏数据STUDIO

    要避免的 9SQL 错误

    下面对不该做的事进行逆向分析,指导你写出清晰、优化、强大的 SQL 语句: 1、避免不明确的列命名: Don’t CREATE TABLE table1 (id int , name varchar(50 t SELECT * FROM customers; Do SELECT * FROM customers WHERE activ_ind = 'Y'; 如果没有 WHERE 子句,您将从表中检索所有行 使用 WHERE 子句根据特定条件过滤数据,确保您只检索相关信息。 7.不要忽视错误处理: Don’t (No error handling) Do BEGIN TRY -- Your SQL statement here -- END TRY BEGIN CATCH 9.不要忽略评论和文档: Don’t (No comments or documentation) Do -- This query retrieves all active customers with

    63010编辑于 2024-06-04
  • 来自专栏信息技术智库

    9.MySQL数据查询SQL

    9.MySQL数据查询SQL 语法格式: select 字段列表|* from 表名 [where 搜索条件] [group by 分组字段 [having 分组条件]] [order by 排序字段  -- 问题出在 sql 计算的顺序上,sql会优先处理and条件,所以上面的sql语句就变成了 -- 查询变成了为年龄22的不管性别,或者年龄为 25的女生 -- 如何改造sql符合我们的查询条件呢? +---------+ -- 统计 users 表中的数据量 select count(*) from users; +----------+ | count(*) | +----------+ | 9  | +----------+ select count(id) from users; +-----------+ | count(id) | +-----------+ | 9 | +-------- rows in set (0.00 sec) -- 如果按照sex这一列进行统计,结果就是8个而不是9个,因为sex这一列中有NULL值存在 mysql> select count(sex) from 

    1.3K30编辑于 2022-07-29
  • 来自专栏网安菜鸟成长记

    sql-labs-less9less10|脚本SQL时间盲注

    前言: 此系列为sql-labs第9关和第10关,两关差别不大,这一关使用sql时间盲注的方法,写脚本进行注入,前面的关卡没有用过时间盲注,所以这一关讲的比较详细,如果错误的地方还请大佬指正! 正文: less9: 本关无论注入正确与否页面都显示一样的回显,所以无法像第八关那样通过查看页面是否输出语句来判断注入的语句是否正确执行,这一关使用时间盲注方法 请看代码: import requests import time import datetime url = "http://localhost/sql-labs/Less-9/? print("flag为->"+flag) get_flag() 跟第八关的脚本差不多,只是使用的注入语句有点差别,涉及到第八关的脚本详解这里不在多说,如果有不懂的请看第八关详解sql-labs-less8 sleep()函数 功能:执行挂起一段时间,也就是等待一段时间在继续执行,里面的参数单位为秒 less10: less10和less9的区别只是单引号双引号,less10换成双引号就好了 。

    2.3K31发布于 2020-10-28
  • 来自专栏人工智能领域

    用KES V9 2025完成SQL Server → 金仓“平替”迁移并启用向量检索

    电科金仓高级副总裁 冷建全 电科金仓高级副总裁冷建全带来了主题为:“KES V9 2025: AI时代的融合数据库”的演讲,以技术人的务实与战略眼光,剖析了国产数据库在AI时代的突围路径——并非简单追逐热点 KES V9 2025在全面覆盖Oracle、MySQL兼容模式常用功能的基础上,新增SQL Server兼容模式(常用功能覆盖率达99%)及Sybase兼容模式(常用功能覆盖率达95%)。 位、16位浮点向量,稀疏浮点向量、二进制向量等多种向量数据类型,可用于存储包括图像、文本、音视频等的向量表示,并结合FALT索引、IVF_FLAT索引、HNSW索引等多种索引方法,实现对向量数据的快速检索 NVARCHAR(50), birth DATE, photo VARBINARY(MAX) -- 存头像二进制 ); -- 同一脚本在 KES V9 2025 的 SQL Server 兼容模式下可直接执行 -- 无需改写任何语法,KDTS 在线同步,双轨并行验证后秒级切换 (2)向量检索:电力巡检图像搜缺陷(多模数据一体化) -- 1) 建表:把图像特征向量

    41810编辑于 2025-08-03
  • 来自专栏自动化、性能测试

    Mysql常用sql语句(9)- like 模糊查询

    测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 like应该是最常用的查询条件了 必须滴掌握!

    4.6K20发布于 2020-06-09
  • 来自专栏学习有记

    T-SQL进阶:超越基础 Level 9:动态T-SQL代码

    在Listing 9中,我提供了一个如何修改我的GetUserName存储过程以使用参数化的TSQL的例子。 使用参数化的TSQL 在Listing 9中,我更改了我的GetProducts存储过程,以使用sp_executesql来执行我的动态TSQL。 为此,首先我需要运行Listing 9中的代码。 (2, 'Farm Animals', 7.59), (2, 'Toy Solders', 17.76); Listing 9: 创建并填充Client表 在运行Listing 9重新创建我的产品表之后,我可以运行Listing 5,6,7和8来证明我解决了我的SQL注入问题。

    2.8K20发布于 2018-07-18
领券