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

sql 2005 强制使用执行计划 T—SQl

select * from tt t inner loop join ss s with(nolock) on s.c=t.c
 
 使用 nested join
select * from tt t inner merge join ss s with(nolock) on s.c=t.c
 
 使用 merge join
 
select * from tt t inner hash join ss s with(nolock) on s.c=t.c
 
使用  hash jion
 
nolock 不允许锁 
 
 
 
 
Microsoft SQL Server sometimes uses hash and merge joins when querying large tables when uncomplicated nested loop joins would result in better performance and less server impact. In many such cases, query times go from many milliseconds to many seconds because hash table joins require that large amounts of data be processed and temporarily stored, and merge joins require sorting and then processing similarly large amounts of data.
This is fine for one-time administrative "fact finding" queries where you don't have or want the indices needed to optimize the query, and you're willing to wait the seconds or minutes it takes to get results.
For day-in-and-day-out application queries, however, you don't want your database engine to be hashing or sorting hundreds of thousands or millions of rows, especially when the end result is only a small number of rows.


相关文档:

sql server 表结构数据字典的sql语句

SELECT TOP (100) PERCENT
CASE WHEN a.colorder = 1 THEN d .name ELSE '' END AS 表名, CASE WHEN a.colorder = 1 THEN isnull(f.value, '')
ELSE '' END AS 表说明, a.colorder AS 字段序号, a.name AS 字段名, CASE WHEN COLUMNPROPERTY(a.id, a.name, 'IsIdentity')
= 1 THEN '√' ELSE '' END AS 标识, CA ......

MySQL导出和导入SQL脚本

MySQL导出和导入SQL脚本
导出sql脚本:
mysqldump -u 用户名 -p 数据库名 > 存放位置
mysqljump -u root -p test > c:\a.sql
导入sql脚本:
要建环境变量或者在bin的目录下,mysql这个命令才能识别。
test是你要导进去的数据库名字,要提前建好~~
mysql -u 用户名 -p 数据库名 < 存放位置
mysqljump -u ro ......

关于SQL的左右连接查询

一直以来对于SQL的查询都没怎么在意,今天遇到一个关于左连接查询的问题。
Select  uId ,uName,dpName
from users
left join dpart
on  users.pid=1 where u.pid=dpart.pid
结果是把users所有结果查询出来,而不是pid为1的用户
原来on后面必须放连接条件,其他的条件放在where里面
感谢夏欢提出 ......

SQL快速用启动


开启各种服务
      @NET stop SQLSERVERAGENT
      @NET stop MSSQLServerOLAPService
      @NET stop msftesql
      @NET stop MsDtsServer
      @NET stop SQLWriter
  ......

SQL Server 返回最后插入记录的id值

SQL Server 2000中,有三个比较类似的功能:他们分别是:SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY,它们都返回插入到 IDENTITY 列中的值。
IDENT_CURRENT 返回为任何会话和任何作用域中的特定表最后生成的标识值。IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT 返回为任何会话和作用域中的 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号