SQL的优化应该从
5
个方面进行调整:
1.去掉不必要的大型表的全表扫描
2.缓存小型表的全表扫描
3.检验优化索引的使用
4.检验优化的连接技术
5.尽可能减少执行计划的
Cost
SQL语句:
是对数据库(
数据
)
进行操作的惟一途径;
消耗了70%~90%
的数据库资源;独立于程序设计逻辑,相对于对程序源代码的优化,对
SQL
语句的优化在时间成本和风险上的代价都很低;
可以有不同的写法;易学,难精通。
SQL优化:
固定的SQL
书写习惯,相同的查询尽量保持相同,存储过程的效率较高。
应该编写与其格式一致的语句,包括字母的大小写、标点符号、换行的位置等都要一致
ORACLE优化器:
在任何可能的时候都会对表达式进行评估,并且把特定的语法结构转换成等价的结构,这么做的原因是
要么结果表达式能够比源表达式具有更快的速度
要么源表达式只是结果表达式的一个等价语义结构
不同的SQL
结构有时具有同样的操作(例如:
= ANY (subquery) and IN (subquery)
),
ORACLE
会把他们映射到一个单一的语义结构。
1 常量优化:
常量的计算是在语句被优化时一次性完成,而不是在每次执行时。下面是检索月薪大于2000
的的 ......
SQL的优化应该从
5
个方面进行调整:
1.去掉不必要的大型表的全表扫描
2.缓存小型表的全表扫描
3.检验优化索引的使用
4.检验优化的连接技术
5.尽可能减少执行计划的
Cost
SQL语句:
是对数据库(
数据
)
进行操作的惟一途径;
消耗了70%~90%
的数据库资源;独立于程序设计逻辑,相对于对程序源代码的优化,对
SQL
语句的优化在时间成本和风险上的代价都很低;
可以有不同的写法;易学,难精通。
SQL优化:
固定的SQL
书写习惯,相同的查询尽量保持相同,存储过程的效率较高。
应该编写与其格式一致的语句,包括字母的大小写、标点符号、换行的位置等都要一致
ORACLE优化器:
在任何可能的时候都会对表达式进行评估,并且把特定的语法结构转换成等价的结构,这么做的原因是
要么结果表达式能够比源表达式具有更快的速度
要么源表达式只是结果表达式的一个等价语义结构
不同的SQL
结构有时具有同样的操作(例如:
= ANY (subquery) and IN (subquery)
),
ORACLE
会把他们映射到一个单一的语义结构。
1 常量优化:
常量的计算是在语句被优化时一次性完成,而不是在每次执行时。下面是检索月薪大于2000
的的 ......
I'm continually trying to track down what service packs are installed on various SQL Servers I support. I can never find the right support page on Microsoft's site. So here's an article with all the SQL Server version information I can track down. If you know of any older versions or can help me fill out any missing data, please post in the comments and I'll update the article.
The versions of SQL Server are listed in the following table. Below the table are instructions to determine what build you are running.
SQL Server 2008
10.00.27.57
SQL Server 2008 SP1 CU6
18 Jan 2010
10.00.2746
SQL Server 2008 SP1 CU5
24 Nov 2009
10.00.2734
SQL Server 2008 SP1 CU4
22 Sept 2009
10.00.2723
SQL Server 2008 SP1 CU3
21 July 2009
10.00.2714
SQL Server 2008 SP1 CU2
18 May 2009
10.00.2710
SQL Server 2008 SP1 CU1
16 Apr 2009
10.00.2531
SQL Server 2008 SP1
7 Apr 2009
10.00.1828
SQL Server 2008 RTM CU9
18 Jan 2009
10.00.1823
SQL Server 2008 RTM CU8
16 Nov 2009
10.00.1818
SQL ......
1.用一条Sql语句查询出每门功课都大于80分的学生姓名
Name
Class
Result
张三
语文
56
张三
数学
88
李四
语文
92
李四
数学
100
王五
语文
88
王五
数学
99
王五
英语
99
-------------------------------------------------------------------------------
答案:
SELECT DISTINCT name
from exercise
WHERE name NOT IN (SELECT name from exercise WHERE result < 80))
2. 筛选出表"A"中第31到40记录(表中ID为主键,注意:ID号有可能不是连续的)
------------------------------
答案:
SELECT TOP 10 from (SELECT TOP 40 * from A ORDER BY id DESC) ......
UpSert功能:
MERGE <hint> INTO <table_name>
USING <table_view_or_query>
ON (<condition>)
WHEN MATCHED THEN <update_clause>
WHEN NOT MATCHED THEN <insert_clause>;
MultiTable Inserts功能:
Multitable inserts allow a single INSERT INTO .. SELECT statement to conditionally, or non-conditionally, insert into multiple tables. This
statement reduces table scans and PL/SQL code necessary for performing multiple conditional inserts compared to previous versions. It's
main use is for the ETL process in data warehouses where it can be parallelized and/or convert non-relational data into a relational format:
-- Unconditional insert into ALL tables
INSERT ALL
INTO sal_history VALUES(empid,hiredate,sal)
INTO mgr_history VALUES(empid,mgr,sysdate)
SELECT employee_id EMPID, hire_date HIREDATE, salary SAL, manager_id MGR
from employees WHERE employee_id > 200;
-- Pivoting insert to split non-relational data
INSERT ALL
INTO Sales_info VALUES (e ......
UpSert功能:
MERGE <hint> INTO <table_name>
USING <table_view_or_query>
ON (<condition>)
WHEN MATCHED THEN <update_clause>
WHEN NOT MATCHED THEN <insert_clause>;
MultiTable Inserts功能:
Multitable inserts allow a single INSERT INTO .. SELECT statement to conditionally, or non-conditionally, insert into multiple tables. This
statement reduces table scans and PL/SQL code necessary for performing multiple conditional inserts compared to previous versions. It's
main use is for the ETL process in data warehouses where it can be parallelized and/or convert non-relational data into a relational format:
-- Unconditional insert into ALL tables
INSERT ALL
INTO sal_history VALUES(empid,hiredate,sal)
INTO mgr_history VALUES(empid,mgr,sysdate)
SELECT employee_id EMPID, hire_date HIREDATE, salary SAL, manager_id MGR
from employees WHERE employee_id > 200;
-- Pivoting insert to split non-relational data
INSERT ALL
INTO Sales_info VALUES (e ......
本文主要内容属转载,但笔者根据该文内容测试成功,故分享于此。
笔者实验环境:Windows Server 2003 Enterprise Edition。
先给出原文链接,稍后调整。
原文链接为:http://www.shilai.cn/2007/5/6/problems-of-installing-sql2005.aspx ......
最近,因个人电脑硬盘损坏,新购入了500G的大硬盘,安装了windows7,在win7上安装了多个虚拟xp机,虚拟机与实际的机器(主机)组成了一个局域网,实现在虚拟机中通过远程连接主机的sql server.现将我的试验过程介绍如下,供有兴趣尝试的大侠参考.
1. 安装虚拟机环境.
先安装window7.0旗舰版 (专业与企业版也可),再到微软下载虚拟xp的相关组件安装虚拟xp模式,复制多个已安装好的winxp模式的文件,再打开,修改虚拟机名称,可同时模拟多台xp模式的虚拟机.组成一个局域网.特别说说虚拟机的网络设置,虚拟机默认网络是共享网络模式,看不到主机,必须将其修改为 <网络适配器名称>的模式,才能象普通机器一样与主机相连.设置方法:
(1) 先关虚拟机, 从虚拟机窗口的工具栏中单击 Ctrl+Alt+Del。或者,还可以按 Ctrl+Alt+End 组合键。弹出对话框,点关机按钮关闭虚拟机
(2) 在“虚拟机”文件夹中,右键单击虚拟机的名称,然后单击“设置”。弹出设置窗口,先网络项,将右边适配器组合框的选项由共享网络改为对应主机的网卡.
(3) 再启动虚拟机即可.此时在虚拟机的网上邻居中应可查到主机.
2. 安装sql server,个人在主机安装了sql server2008开发 ......