精华内容
下载资源
问答
  • SQL 提升SQL执行效率诀窍.docx
  • sql执行效率提高

    2013-10-03 21:27:35
    使你的 SQL 语句完全优化,提高sql执行效率
  • SQL艺术、提高SQL执行效率的方法总结SQL艺术、提高SQL执行效率的方法总结SQL艺术、提高SQL执行效率的方法总结SQL艺术、提高SQL执行效率的方法总结SQL艺术、提高SQL执行效率的方法总结SQL艺术、提高SQL执行效率的方法...
  • 显示 sql 执行效率.

    2009-01-02 17:59:01
    描述显示SQL语句的执行效率以及怎样手动引导显示SQL语句执行效率的方法。
  • 主要介绍了MySql批量插入优化Sql执行效率实例详解的相关资料,需要的朋友可以参考下
  • 提高sql执行效率的几点建议提高sql执行效率的几点建议
  • 为提高oracle的sql执行效率,优化性能,通过oracle表分析功能进行调整,能加快sql查询效率2倍以上
  • Oracle执行计划使用分析SQL执行效率

    千次阅读 2016-05-03 20:12:50
    Oracle执行计划使用分析SQL执行效率

    #编译并执行SQL执行计划

    explain plan for

    //SQL语句

    #查看CPU使用情况

    select * from table(dbms_xplan.display)


    展开全文
  • 对于做管理系统和分析系统的程序员,复杂SQL语句是不可避免的,面对海量数据,有时候经过优化的某一条语句,可以提高执行效率和整体运行性能。 如何选择SQL语句,本文提供了两种方法,分别对多条SQL进行量化的分析...

    对于做管理系统和分析系统的程序员,复杂SQL语句是不可避免的,面对海量数据,有时候经过优化的某一条语句,可以提高执行效率和整体运行性能。

    如何选择SQL语句,本文提供了两种方法,分别对多条SQL进行量化的分析。

    在测试SQL性能的过程中。

    一是通过设置STATISTICS查看执行SQL时的系统情况。

    选项有PROFILE,IO ,TIME。 SET STATISTICS PROFILE ON:显示分析、编译和执行查询所需的时间(以毫秒为单位)。

    SET STATISTICS IO ON:报告与语句内引用的每个表的扫描数、逻辑读取数(在高速缓存中访问的页数)和物理读取数(访问磁盘的次数)有关的信息。

    SET STATISTICS TIME ON:显示每个查询执行后的结果集,代表查询执行的配置文件。

    实例如下:

    SET STATISTICS PROFILE ON

    SET STATISTICS IO ON

    SET STATISTICS TIME ON

    GO

    –你的SQL脚本开始

    SELECT [TestCase] FROM [TestCaseSelect]

    –你的SQL脚本结束

    GO

    SET STATISTICS PROFILE OFF

    SET STATISTICS IO OFF

    SET STATISTICS TIME OFF

     

    另外,也可以通过手工添加语句,计算执行时间来查看执行语句花费了的时间,以判断该条SQL语句的效率如何:

    declare @d datetime set @d=getdate()

    –你的SQL脚本开始

    SELECT [TestCase] FROM [TestCaseSelect]

    –你的SQL脚本结束

    select [语句执行花费时间(毫秒)]=datediff(ms,@d,getdate())

     

    二是通过SQL 2008的“查询”按钮下的“包括实际的执行计划”和“包括客户端统计信息”。

    下面是我和经理写的两个例子的性能对比:

    我的: 

    SQL Server 执行时间:

    CPU 时间= 32 毫秒,占用时间= 762 毫秒。

    CPU 时间= 16 毫秒,占用时间= 475 毫秒。

    CPU 时间= 32 毫秒,占用时间= 671 毫秒。

    CPU 时间= 31 毫秒,占用时间= 615 毫秒。

    经理的: 

    SQL Server 执行时间:

    CPU 时间= 16 毫秒,占用时间= 547 毫秒。

    CPU 时间= 47 毫秒,占用时间= 491 毫秒。

    CPU 时间= 32 毫秒,占用时间= 436 毫秒。

    CPU 时间= 47 毫秒,占用时间= 416 毫秒。

    PS:今天在做一道题目的时候,经理给出的一道难题,虽然做出来了,但是性能没有做到最优化。

    其中用到了三层嵌套。

    现在特别是要总结的:大表跟小表进行关联查询 时,涉及到嵌套查询,先查询小表,然后再联合大表。

    我是一开始让大小表进行关联,然后再嵌套。而经理写的是先让小表嵌套,最后在关联。这样,执行效率自然要比我高

     

    #1楼[楼主]   

    DBCC FREEPROCCACHE
    DBCC DROPCLEANBUFFERS


    DBCC DROPCLEANBUFFERS:从缓冲池中删除所有缓存,清除缓冲区

    在进行测试时,使用这个命令可以从SQLSERVER的数据缓存data cache(buffer)清除所有的测试数据,以保证测试的公正性。

    展开全文
  • 提高SQL执行效率的16种方法,非常不错
  • 提高Oracle中SQL执行效率提高Oracle中SQL执行效率
  • 详细介绍了使用 BULK COLLECT 进行批量操作 提高sql执行效率 使用MERGE INTO USING 一条sql搞定 新增和修改 使用connect by 进行递归树查询
  • 【0】如何分析mysql中sql执行较慢的问题 步骤1、观察,至少跑一天,看看生产的慢sql情况; 步骤2、开启慢查询日志,设置阈值,比如超过5秒钟就是慢sql, 并将它抓取出来; 步骤3、explain+慢sql分析; 步骤4、...

    【0】如何分析mysql中sql执行较慢的问题

    • 步骤1、观察,至少跑一天,看看生产的慢sql情况;
    • 步骤2、开启慢查询日志,设置阈值,比如超过5秒钟就是慢sql, 并将它抓取出来;
    • 步骤3、explain+慢sql分析;
    • 步骤4、show profile;(推荐)
    • 步骤5、运维经理或dba,进行sql数据库服务器的参数调优;(不推荐)

    【总结】 

    • 总结1、慢查询的开启并捕获;
    • 总结2、explain + 慢sql分析;
    • 总结3、show profile 查询sql在mysql 服务器里面的执行细节和声明周期情况;
    • 总结4、sql数据库服务器的参数调优;

    ==============================================================================================

    【1】exists + order by + group by 优化 

    1.1、查询优化:使用 explain 查看执行计划,看是否可以基于索引查询;

    1.2、小表驱动大表:当两个表做连接操作时, 其实就是双层for循环, 小表驱动大表的意思是, 小表(小数据集的表)放在第1层循环,大表(大数据集的表)放在第2层循环;

    【补充】关于exists 语法 与 in 的区别:

    exists语法:把 where id in 换位 where  exists 即可;

    select ... from tbl where exists (subquery);

    exists语法可以理解为:将主查询的数据,放到子查询中做条件验证,根据验证结果 true 或 false, 来决定主查询的数据结果是否保留;
    关于exists的提示:

    • 提示1:exists(subquery) 只返回true或false, 因此子查询中的select * 也可以是 select 1 或其他, 官方说法是实际执行时会忽略 select 清单,因此没有区别;
    • 提示2:exists 子查询的实际执行过程可能经过了优化而不是我们理解上的逐条对比,如果担心效率问题,可以进行实际检验;
    • 提示3:exists 子查询往往也可以用条件表达式,其他子查询或join来替代,哪种方法最优需要具体问题具体分析;

    exists用法荔枝(exists与in的区别):

    -- exists 语法 
    select * from emp_tbl a where exists (select 1 from dept_tbl b where b.dept_id = a.dept_id)
    order by a.rcrd_id 
    limit 10
    ;
    -- in 语法
    select * from emp_tbl a where a.dept_id in (select b.dept_id from dept_tbl b)
    order by a.rcrd_id 
    limit 10
    ;
    

    -- 执行计划18
    explain  select * from emp_tbl a where exists (select 1 from dept_tbl b where b.dept_id = a.dept_id)
    ;
    -- 执行计划19
    explain select * from emp_tbl a where a.dept_id in (select b.dept_id from dept_tbl b)
    ;

    ==============================================================================================

    1.2、order by 关键字优化 
    优化1、尽量使用index方式排序,避免使用 filesort方式;

    -- 建表
    drop table if exists birth_tbl;
    create table birth_tbl (
        `rcrd_id` int(10) unsigned primary key auto_increment COMMENT '记录编号'
        , age int default 0 comment '年龄'
        , birth timestamp default current_timestamp comment '生日'
    ) engine=innodb default charset=utf8 comment '生日表'
    ;
    -- 插入数据
    insert into birth_tbl(age) values 
    (floor(1+(rand()*100)))
    , (floor(1+(rand()*100)))
    , (floor(1+(rand()*100)))
    , (floor(1+(rand()*100)))
    , (floor(1+(rand()*100)))
    ;
    -- 添加索引
    alter table birth_tbl
    add key `idx_age_birth`(`age`, `birth`)
    ; 

    -- 查看order by的执行计划是否使用了文件排序; 

    -- 执行计划20  索引排序
    explain select * from birth_tbl where age > 30 order by age
    ;
    -- 执行计划21  索引排序
    explain select * from birth_tbl where age > 30 order by age, birth
    ;
    -- 执行计划22  文件排序
    explain select * from birth_tbl where age > 30 order by birth
    ;
    -- 执行计划23  文件排序
    explain select * from birth_tbl where age > 30 order by birth, age
    ;
    -- 执行计划24  文件排序
    explain select * from birth_tbl order by birth
    ;
    -- 执行计划25  文件排序
    explain select * from birth_tbl where birth > '2018-01-01 00:00:00' order by birth
    ;
    -- 执行计划26  索引排序
    explain select * from birth_tbl where birth > '2018-01-01 00:00:00' order by age
    ;
    -- 执行计划27  文件排序
    explain select * from birth_tbl order by age asc, birth desc
    ;

    mysql支持两种方式的排序: 文件排序filesort 和 index 索引排序, index排序的效率较高; 它指mysql 扫描索引本身完成排序,文件排序filesort 效率较低;

    【补充】 order by 满足两个情况:会使用索引排序:

    • 情况1:order by 语句使用索引最左前列;
    • 情况2: 使用where子句与order by 子句条件组合满足索引最左前列;

    优化2、尽可能在索引列上完成排序操作,遵照索引建的最佳左前缀;

    优化3、如果不在索引列上,文件排序filesort有两种算法: mysql需要启动双路排序或单路排序;

    优化策略:

    • 策略1:增大 sort_buffer_size 参数设置;
    • 策略2:增大 max_length_for_sort_data 参数的设置;
    • 策略3:why ?

    【总结】order by 总结-为排序使用索引:

    • 总结1、mysql两种排序方式: 文件排序或扫描有序索引排序;
    • 总结2、mysql能为排序和查询使用相同的索引;
    • 总结3、具体执行计划:

    key idx_a_b_c(a, b, c);

    • 总结3.1、order by 能使用索引最左前缀的有:
    • order by a;
      order by a, b;
      order by a, b, c;
      order by a desc, b desc, c desc;  -- (要么全部升序,要么全部降序)
    •  
    • 总结3.2、如果where 使用索引的最左前缀定义为常量, 则order by 能使用索引;
    • where a = const order by b, c;
      where a=const and b=const order by c;
      where a = const and b > const order by b, c;
    •  
    • 总结3.3、不能使用索引进行排序:
    • order by a asc, b desc, c desc;
      where g = const order by b, c;
      where a = const order by c;
      where a=const order by a, d -- d不是索引的一部分;
      where a in (...) order by b, c;

    1.3、group by 关键字优化;(均和order by 一样)

    • (1)group by 实质是先排序后再分组,遵照索引建的最佳左前缀;
    • (2)当无法使用索引列,增大 max_length_for_sort_data 参数的设置+增大 sort_buffer_size 参数的设置;
    • (3)where高于 having, 能写在 where 限定的条件就不要去 having 限定了 ;

    =============================================================================================

    【2】慢查询日志

    0、什么是慢查询sql:sql运行时间超过 long_query_time 的sql 将会被记录到 慢查询日志中;

    • 0.1)mysql的慢查询日志是mysql提供的一种日志记录, 它用来记录在mysql中响应时间超过阈值的语句,具体指运行时间超过 long_query_time 值的sql, 则会被记录到慢查询日志中;
    • 0.2)long_query_time 的默认值为10, 则表示运行时间超过10秒的sql语句被记录到慢查询日志中;
    • 0.3)通过收集超过10秒的sql, 结合之前 explain 进行全面分析;

    1)mysql的慢查询日志

    • 1.1)默认情况下, mysql没有开启慢查询日志,需要手工开启;
    • 1.2)如果不是调优需要的话,一般不建议启动该参数; 因为开启慢查询日志或多或少会带来一定的性能影响。慢查询日志支持将日志记录写入文件;

    2)查看是否开启慢查询日志以及如何开启? 
    默认: show variables like '%slow_query_log%';

    开启: set global slow_query_log=1;

    【注意】

    • 注意1: 使用 set global slow_query_log=1 开启了慢查询日志只对当前数据库生效, 如果mysql重启以后则会失效;
    • 注意2:如果要永久生效,必须修改配置文件 my.cnf ;

    如何设置long_query_time ?
    show variables like 'long_query_time%';
    查询 long_query_time的值?即查询当前多少秒算慢?
    show variables like 'long_query_time'

    设置慢的阈值时间? 
    set global long_query_time=3;

    为什么设置后期 long_query_time 还是没变;
    这个时候需要重新连接或新开一个会话; 或者执行 show global variables like 'long_query_time' ;

    如何制造 执行时间超过3秒的SQL?
    如  select sleep(4);

    查看当前有多少条慢查询sql?
    show global status like '%slow_queries%';

    补充1:如何在my.ini文件中配置mysql的慢查询参数, 如下:
    补充2: 日志分析工具 mysqldumpslow ,常用于在生产中分析sql的性能;

     

    =============================================================================================
    【3】、批量数据脚本;

    -- 新建函数-产生随机的字符串
    drop function if exists rand_str;
    delimiter ##
    create function rand_str(n int) returns varchar(255)
    begin 
    	declare chars_str varchar(100) default 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    	declare return_str varchar(255) default '';
    	declare i int default 0;
    	while i < n do 
    		set return_str=concat(return_str, substring(chars_str, floor(1+rand()*52), 1));
    		set i=i+1;
    	end while;
    	return return_str;
    end ## 
    delimiter ;
    
    -- 新建函数-产生随机的整数
    drop function if exists rand_num; 
    delimiter ##
    create function rand_num() returns int
    begin 
    	declare i int default 0;
    	set i=floor(100+rand()*10);
    	return i;
    end ## 
    delimiter ;
    
    -- 创建存储过程,函数没法单独被调用,只能通过存储过程进行调用;
    -- 新建存储过程-调用函数批量插入数据 
    drop procedure if exists insert_emp; 
    delimiter ##
    create procedure insert_emp(in start_num int, in max_num int) 
    begin 
    	declare i int default 0;
    	set autocommit=0;
    	repeat 
    		set i=i+1;
    		INSERT INTO mybatis.emp_tbl (emp_id, dept_id, name)VALUES(rand_num(), rand_num(), rand_str(20));
    		until i = max_num
    	end repeat;
    	commit;
    end ## 
    delimiter ;
    
    
    call insert_emp(0, 100000)
    ;

    =============================================================================================

    【4】show profile

    4、show profile
    4.0)intro:
    show profile 提供了比 explain 更加细粒度的sql执行计划分析和sql优化;
    4.1)是什么: 是mysql提供可以用来分析当前回话中语句执行的资源消耗情况。可以用于sql的调优测量;
    4.2)官网: https://dev.mysql.com/doc/refman/8.0/en/show-profile.html 
    4.3)默认情况下,参数处于关闭状态,并保持最近15次的运行结果;
    4.4)分析步骤:

    • 步骤1:是否支持,看看当前的mysql版本是否支持 show profile;
    • show variables like 'profiling';
    • 步骤2:开启功能,默认是关闭,使用前需要开启;
    • 步骤3:运行 sql; 且要运行耗时长的sql;
    • select * from emp_tbl e inner join dept_tbl d on e.dept_id = d.dept_id
      ;
      select * from emp_tbl e left join dept_tbl d on e.dept_id = d.dept_id
      ;
      select * from emp_tbl group by rcrd_id%10 
      ; 
    • 步骤4:查看结果,show profiles;
    • 步骤5:诊断sql, show profile cpu, block io for query 上一步前面的问题sql数字号码; 查看一条sql的完整生命周期;  show profile cpu, block io for query 3; 
    • 补充: 不仅仅可以查看 cpu, block io , 还可以查看如下类型的信息;
    • 步骤6: 日常开发需要注意的结论;以下结论都是性能比较差的sql的表现形式,即 show profile cpu, block io for query 3; 中的status中出现以下4种中的一种或几种,则sql执行效率较差,需要优化; 

    【关于show profile的结论】

    • 结论1)converting heap to myisam 查询结果太大, 内存都不够用了,往磁盘上搬;
    • 结论2)creating tmp table 创建临时表: 拷贝数据到临时表,用完再删除;
    • 结论3)copying to tmp table on disk, 把内存中临时表复制到磁盘,危险
    • 结论4) locked :锁住;  
       

    =============================================================================================

    【5】、全局查询日志;
    5.1、配置启用: 在mysql的 my.ini 中,配置如下:

    #开启
    general_log=1
    #记录日志文件的路径
    general_log_file=/path/logfile
    #输出格式
    log_output=FILE

    5.2、编码启用:命令如下:

    set global general_log=1;
    set global log_output='TABLE';


    此后, 你所编写的sql语句, 将会记录到 mysql库里的general_log 表,可以用下面的命令查看:
    select * from mysql.general_log; 


    5.3、建议不要在生产环境开启这个功能, 仅在测试环境开启以便调试;

     

    【建议】 建议使用 show profile 功能分析和优化sql性能; 
     

     

    展开全文
  • 提高SQL执行效率的方法

    千次阅读 2013-09-19 02:02:01
    Oracle提供了多种方法用于减少花在剖析Oracle SQL表达式上的时间,在执行带有大量执行计划的复杂查询时剖析过程会拖累系统的性能。现在我们来简要地看看这些方法中的几种。  1、使用ordered提示  Oracle必须...

    Oracle提供了多种方法用于减少花在剖析Oracle SQL表达式上的时间,在执行带有大量执行计划的复杂查询时剖析过程会拖累系统的性能。现在我们来简要地看看这些方法中的几种。

      1、使用ordered提示

      Oracle必须花费大量的时间来剖析多表格的合并,用以确定表格合并的最佳顺序。如果SQL表达式涉及七个乃至更多的表格合并,那么有时就会需要超过30分钟的时间来剖析,因为Oracle必须评估表格合并所有可能的顺序。八个表格就会有40,000多种顺序。Ordered这个提示(hint)和其他的提示一起使用能够产生合适的合并顺序。

      Ordered这个提示会要求列在SQL表达式FROM字句里的表格按照指定的顺序进行合并,FROM字句里的第一个表格会指定驱动表格(driving table)。驱动表格应该是返回最小行数的表格。使用ordered提示会跳过非常耗时和耗资源的剖析操作,并加快Oracle SQL的执行。

      Listing A如下:

      以下是引用片段:

      Listing A

      select /*+ ordered use_nl(bonus)

      parallel(e, 4) */ e.ename, hiredate, b.comm from emp e, bonus b

      where e.ename = b.ename ;

      Listing A里是一个复杂查询的例子,这个查询被强制进行一个嵌套循环,从而与对emp表格进行的并行查询合并。要注意,我已经使用ordered提示来引导Oracle去按照WHERE子句所列出的顺序来评估表格。

      2、使用theordered_predicates

      ordered_predicates提示在查询的WHERE子句里指定的,并被用来指定布尔判断(Boolean predicate)被评估的顺序。在没有ordered_predicates的情况下,Oracle会使用下面这些步骤来评估SQL判断的顺序:

      子查询的评估先于外层WHERE子句里的Boolean条件。

      所有没有内置函数或者子查询的布尔条件都按照其在WHERE子句里相反的顺序进行评估,即最后一条判断最先被评估。

      每个判断都带有内置函数的布尔判断都依据其预计的评估值按递增排列。

      你可以使用ordered_predicates提示来强制取代这些缺省的评估规则,那么你WHERE子句里的项目就会按照其在查询里出现的顺序被评估。在查询的WHERE子句里使用了PL/SQL函数的情况下,通常会使用ordered_predicates提示。如果你知道限制最多的判断并且希望Oracle最先评估这些判断的时候,在这种情况下,它也是非常有用的。用法提示:你不能使用ordered_predicates提示来保存对索引键进行判断评估的顺序。

      3、限制表格合并评估的数量

      提高SQL剖析性能的最后一种方法是强制取代Oracle的一个参数,这个参数控制着在评估一个查询的时候,基于消耗的优化器所评估的可能合并数量。

      optimizer_search_limit这个参数会指定表格合并组合的最大数量,后者将会在Oracle试图确定合并多表格最佳方式的时候被评估。这个参数有助于防止优化器花更多的时间来评估可能的合并顺序,而不是把时间花在寻找最佳合并顺序上。optimizer_search_limit还控制着用于调用star join提示的阙值,当查询里的表格数量低于optimizer_search_limit(其缺省的值是5)的时候,star提示就会被光顾。

    展开全文
  • 根据mysql慢日志监控SQL语句执行效率 启用MySQL的log-slow-queries(慢查询记录)。
  • MySql批量插入优化Sql执行效率

    千次阅读 2016-06-19 10:54:28
    itemcontractprice数量1万左右,每条...用sql语句批量操作,可以说效率提升了 40倍,就是大量数据的传输和数据库的处理次数耗时。 所以说,软件开发不是开发完成就行,而是要解决性能上的问题,这才是开发的进阶。
  • 提高SQL执行效率的方法有哪些?

    千次阅读 2014-05-31 19:14:36
    2、JAVA中的存储过程?     3、解释select * from dual的执行计划?     4、提高SQL执行效率的方法有哪些?
  • SQL执行效率和性能测试方法总结

    万次阅读 2014-12-24 17:53:17
    对于做管理系统和分析系统的程序员,复杂SQL语句是不可避免的,面对海量数据,有时候经过优化的某一条语句,可以提高执行效率和整体运行性能。如何选择SQL语句,本文提供了两种方法,分别对多条SQL进行量化的分析。 ...
  • 优化sql语句执行效率几点需要注意的事项
  • sql执行效率——on 和 where

    千次阅读 2015-04-21 11:44:21
    今天在分析一个sql语句的时候 发现 left join 与where a=b(+) 产生的执行计划不一样 而且效率也是不一样的 到底怎么回事 我在网上找了篇文章分享 (1.)select语句的执行顺序 Processing Order of the SELECT sta
  • Oracle提高sql执行效率的建议(1)

    千次阅读 2013-12-21 00:55:50
    Oracle提高sql执行效率的建议   -->FROM子句中包含多个表的情况下,选择记录条数最少的表作为基础表    -->解析WHERE子句是自下而上的 过滤条件要有顺序    -->ORACLE会将'*'转换成列名    -->DELETE...
  • Oracle中SQL语句执行效率的查找与解决..
  • 2.navicate如何知道sql执行效率

    千次阅读 2019-10-19 09:39:18
    所以说,执行时间并不是最好的标准,那么我们可以怎么去查看sql执行效率的一些因素。 navicat界面给出了“解释”功能,当我们执行完sql,点击“解释”就可以看到sql执行相关的参数。 最值得注意的就是type。...
  • sql server 查看执行效率不高的语句
  • 如果服务器存在多个cpu的话,我们就可以使用parallel进行并行执行某个查询,插入操作的sql,这样可以大大提高sql执行效率,具体使用几个并行的进程,可以设置process count = cpu count;  执行并行查询,一种在直接在...
  • 需求: 有一张临时表 , 数据总数100w条, 其中 50w条 , state = 1 50w条 , state = 0 因为数据无用 , 所以需要 更新 所有数据的 state 为 1 ; 环境 数据库 : oracle 11g ... 开发工具: PL/SQL 方案: ...
  • SQL执行提高效率的多种方法 SQL执行提高效率的多种方法
  • SQL语句执行效率及分析

    千次阅读 2017-01-03 15:04:10
    1.关于SQL查询效率,100w数据,查询只要1秒,与您分享: 机器情况 p4: 2.4 内存: 1 G os: windows 2003 数据库: ms sql server 2000 目的: 查询性能测试,比较两种查询的性能 SQL查询效率 step by step -- ...
  • Postgresql查看SQL语句执行效率

    千次阅读 2017-11-20 15:22:57
    Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看 SQL 语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好的优化语句。...
  • SQL语句执行效率瓶颈

    千次阅读 2012-07-05 21:18:21
    影响SQL瓶颈的因素有很多,包括内存不足,硬件不行,或者没有足够的内存供SQL Server 使用,缺少有用的索引等,网络通讯不好,磁盘配置了,如tempdb 的配置,是否为查询优化器提供了优化复杂查询的最有利条件 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 341,013
精华内容 136,405
关键字:

如何看sql的执行效率