易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : sql

sql语句优化3


 
低效: (索引失效)
SELECT … from DEPARTMENT WHERE DEPT_CODE IS NOT NULL;
高效: (索引有效)
SELECT … from DEPARTMENT WHERE DEPT_CODE >=0;
(27)总是使用索引的第一个列:
如果索引是建立在多个列上, 只有在它的第一个列(leading column)被where子句引用时,优化器才会选择使用该索引。这也是一条简单而重要的规则,当仅引用索引的第二个列时,优化器使用了全表扫描而忽略了索引。
(28)用UNION-ALL 替换UNION ( 如果有可能的话):
当SQL语句需要UNION两个查询结果集合时,这两个结果集合会以UNION-ALL的方式被合并, 然后在输出最终结果前进行排序。如果用UNION ALL替代UNION,http://www.vstudycn.com 这样排序就不是必要了。效率就会因此得到提高。需要注意的是,UNION ALL 将重复输出两个结果集合中相同记录。因此各位还是要从业务需求分析使用UNION ALL的可行性. UNION 将对结果集合排序,这个操作会使用到SORT_AREA_SIZE这块内存。对于这块内存的优化也是相当重要的。下 ......

读《SQL Server 2005高级管理》的一些摘要... 连载5

在T-SQL中监视进程
DBA更愿意使用T-SQL的原因是可以比“活动监视器”更加灵活地获得信息。
1.       sp_who和sp_who2
存储过程sp_who也返回当前连接数据库实例,与“活动监视器”非常类似。然而,用户可能发现自己更愿意使用未公开说明的sp_who2存储过程,因为它提供了有关每个进程的更详细信息。不管使用哪个存储过程,它们都将接受相同输入参数。
要查看当前连接服务器的所有连接,可不带任何参数运行sp_who2。这将与“活动监视器”显示相同类型信息。还可以给它传递参数active,从而只查看服务器上的活动链接。
sp_who2 ‘active’
最后,可按如下所示传递进程ID作为参数,以查看有关特定进程的详细信息,
  sp_who2  55
2.       sys.dm_exec_connections
动态管理视图sys.dm_exec_connections提供了更多信息,帮助排除SQL Server数据库引擎故障。这个DMV为SQL Server中的每个会话返回一行。因为它是DMV,所以它以表格形式显示,并让用户能够对该视图编写复杂的查询,以筛选掉不关心的内容,如下面的询查所示,它只显示执行写入操作的用户连接 ......

EXCEL数据导入SQL 的另类用法

做开发过程中,经常会用到将Excel中数据导出到SQL Server中的情况,你可以利用SQL SERVER 中自带的导入数据的方式,但这种方式,有时会发现数据导入后,可能为空,可能开头少个零,此种情况多出现于数值型的列,今天在CSDN上闲逛,偶尔发现了一个帖子,介绍的以下这种方法,本人恰七因最近公司准备上市,审计局在做审计,技术部在配合财务部做一些财务数据的核对,就不断的用到这种情况,财务很多数据都是EXCEL报表,需要导入SQL SERVER,于系统中数据进行自动比对,偶然发现的这种方法,真是可以解决导入过程中,遇到的很多问题,感觉甚为方便,日志以记录!
比如Excel有两列,A列和B列需要导入到SQL表中,那么可以在Excel中的新的一列中,直接写公式
=CONCATENATE("Insert #tmp values('",A1,"','",B1,"')")
把每一行都设成同样的公式(双击即可完成)。
把整列复制下来,放到查询分析器中直接运行就好了。
这样的好处多
1.不用管你什么格式,绝对不会乱。
2.快捷方便(列数不太多的话一般一分钟之内可以搞定)
3.不会出错,甚至都不需要核对。 ......

SQL分页查询

thunder:
1.MYSQL实现
mysql> select * from user;
+----+----------+----------+-----------------+
| ID | username | password | email           |
+----+----------+----------+-----------------+
|  1 | admin    | admin    | abc@yahoo.cn    |
|  2 | thomas   | 159753   | thomas@yahoo.cn |
|  3 | thomas1  | 159753   | thomas@yahoo.cn |
|  4 | huhu     | 159753   | hu@yahoo.cn     |
|  5 | fdg      | dfg      | fdg             |
|  6 | sdf      | sd       | sdf@yahoo.cn    |
|  7 | d        | d        | d@d.cn  &n ......

SQL 数据库之一

1.      SELECT
实例105
SELECT ID "编号",Name 姓名,
       Math_Score '数学成绩',  //怎么有的有AS,有的没有
       Music_Score AS 音乐成绩,
       English_Score AS 英文成绩
from tb_StuScore
 
SELECT 编号, 商品名称,数量,单价,进价,
(单价*数量) AS 销售额,
(单价*数量-进价*数量) AS 利润
from tb_xsb
 
SELECT ID,Name,Math_Score,Music_Score,EngLish_Score
from tb_StuScore
WHERE NOT (EngLish_Score>= 90) OR (Math_Score>=95)
 
SELECT *
from tb_StuScore
WHERE Math_score LIKE '8_'
 
SELECT *
from tb_StuScore
WHERE Name  LIKE '刘%'
 
SELECT *
from tb_StuScore
WHERE English_score LIKE '9[5-9]%'
 
SELECT *
from tb_StuScore
WHERE Math_Score LIKE '[^9][0-9]'
 
SELECT *
from tb_StuScore
WHERE (Name LIKE '刘%')
       AND (
        &n ......

SQL数据库之二

l  INNER JOIN
内连接是最常见的一种连接,它页被称为普通连接,而E.FCodd最早称之为自然连接。
下面是ANSI SQL-92标准
select *  from    t_institution i
inner join t_teller t
on i.inst_no = t.inst_no  //说两个表之间的关系用ON
where i.inst_no = "5801"
其中inner可以省略。等价于早期的连接语法
select *  from t_institution i, t_teller t
where i.inst_no = t.inst_no
and i.inst_no = "5801"
 
SELECT *
from   明日工资表 AS a INNER JOIN 部门表 AS b
       ON a.部门名称=b.部门名称
WHERE  工资月份='3'
 
 
 
l  LEFT   OUTER   JOIN---1
select *  from    t_institution i  //表在from中的定义别名不需要AS
left outer join t_teller t
on i.inst_no = t.inst_no
其中outer可以省略。
 
SELECT a.部门编号,a.部门名称,a.负责人,
        b.人员编号,b.人员姓名,b.部门名称,
        b.学 ......
总记录数:4346; 总页数:725; 每页6 条; 首页 上一页 [646] [647] [648] [649] 650 [651] [652] [653] [654] [655]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号