易截截图软件、单文件、免安装、纯绿色、仅160KB

SQL语句效率问题的几点总结


1. SQL优化的原则是:
  将一次操作需要读取的BLOCK数减到最低,即在最短的时间达到最大的数据吞吐量。 
  调整不良SQL通常可以从以下几点切入: 
  检查不良的SQL,考虑其写法是否还有可优化内容 
  检查子查询  考虑SQL子查询是否可以用简单连接的方式进行重新书写 
  检查优化索引的使用 
  考虑数据库的优化器 
   
2. 避免出现SELECT  *  from  table    语句,要明确查出的字段。   
   
3. 在一个SQL语句中,如果一个where条件过滤的数据库记录越多,
    定位越准确,则该where条件越应该前移。 
   
4. 查询时尽可能使用索引覆盖。即对SELECT的字段建立复合索引,
    这样查询时只进行索引扫描,不读取数据块。 
   
5. 在判断有无符合条件的记录时建议不要用SELECT  COUNT  (*)和select  top  1  语句。 
   
6. 使用内层限定原则,在拼写SQL语句时,将查询条件分解、分类,
    并尽量在SQL语句的最里层进行限定,以减少数据的处理量。 
   
7. 应绝对避免在order  by子句中使用表达式。 
   
8. 如果需要从关联表读数据,关联的表一般不要超过7个。 
   
9. 小心使用  IN  和  OR,需要注意In集合中的数据量。建议集合中的数据不超过200个。 
   
10. <>  用  <  、  >  代替,>用>=代替,<用<=代替,这样可以有效的利用索引。 
   
11. 在查询时尽量减少对多余数据的读取包括多余的列与多余的行。 
   
12. 对于复合索引要注意,例如在建立复合索引时列的顺序是F1,F2,F3,
    则在where或order  by子句中这些字段出现的顺序要与建立索引时的字段顺序一致,
    且必须包含第  一列。只能是F1或F1,F2或F1,F2,F3。否则不会用到该索引。
13. 多表关联查询时,写法必须遵循以下原则,这样做有利于建立索引,提高查询效率。
    格式如下
    select  sum(table1.je)  from  table1&n


相关文档:

SQL连接类

using System;
using System.Collections;
using System.Collections.Specialized;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace DAL
{ ......

ORACLE中查看SQL执行计划的方法

 1.首先需要建立plan table,否则不能使用
建立方法:
$oracle\rdbms\admin下有个
utlxplan.sql
其内容为:
create table PLAN_TABLE (
 statement_id  varchar2(30),
 timestamp     date,
 remarks       varchar2(80),
 operat ......

动态SQL基本语法

 1 :普通SQL语句可以用exec执行
Select * from tableName
exec('select * from tableName')
exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N
2:字段名,表名,数据库名之类作为变量时,必须用动态SQL
declare @fname varchar(20)
set @fname = 'FiledName'
Select @fname fr ......

EXCEL 导入SQL SERVER存储过程

 set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER proc [dbo].[pr_xls_to_tb]
@path varchar(200),--EXCEL路径名
@tbName varchar(30),--表名
@stName varchar(30) --excel中要读的SHEET名
as
declare @sql varchar(500),--最后要执行的SQL
@stName_Real varchar(35),--真正的SHEET名
......

Oracle PL/SQL入门之慨述

 一、PL/SQL出现的目的
  结构化查询语言(Structured Query
Language,简称SQL)是用来访问关系型数据库一种通用语言,它属于第四代语言(4GL),其执行特点是非过程化,即不用指明执行的具体方法和途
径,而是简单的调用相应语句来直接取得结果即可。显然,这种不关注任何实现细节的语言对于开发者来说有着极大的 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号