mssqlsql语句
Ⅰ MSsql如何查看sql语句执行时间判断执行效率
写程序的人,往往需要分析所写的SQL语句是否已经优化过了,服务器的响应时间有多快,这个时候就需要用到SQL的STATISTICS状态值来查看了。
通过设置STATISTICS我们可以查看执行SQL时的系统情况。选项有PROFILE,IO ,TIME。介绍如下:
SET STATISTICS PROFILE ON:显示分析、编译和执行查询所需的时间(以毫秒为单位)。
SET STATISTICS IO ON:报告与语句内引用的每个表的扫描数、逻辑读取数(在高速缓存中访问的页数)和物理读取数(访问磁盘的次数)有关的信息。
SET STATISTICS TIME ON:显示每个查询执行后的结果集,代表查询执行的配置文件。
使用方法:打开SQL SERVER 查询分析器,输入以下语句:
SET STATISTICS PROFILE ON
SET STATISTICS IO ON
SET STATISTICS TIME ON
GO /*--你的SQL脚本开始*/
SELECT [TestCase] FROM [TestCaseSelect]
GO /*--你的SQL脚本结束*/
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())
Ⅱ MSSQL模糊查询的SQL语句怎么写
select * from tablename where xx like '%广西%民族%'
Ⅲ mssql sql语句多条件查询优化问题。
很简单,最终查询的结果是新闻,所以新闻表是你的主要查询表
企业、品牌、媒体这三个都是条件
我认为,你的新闻表中应该有两种形式,
一是同时包括三种条件,包括企业、品牌、媒体代码、新闻标题、内容等关键字段
查询的时候sql语句非常简单,就是select 新闻 from 新闻表 where 企业 in (条件)or 品牌 in (条件)or 媒体 in (条件)
这样一个不好就是新闻库过大,但是因为没有做表关联查询,所以速度非常快
二是仅包括一种条件,新闻分别在3个表中保存
查询的时候需要union联合查询,这样的优势是每个表都相对较小,如果用户只查询一个条件,那查询工作量会非常低。
select 新闻 from 新闻表1 where 企业 in (条件)
union select 新闻 from 新闻表2 where 品牌 in (条件)
union select 新闻 from 新闻表3 where 媒体 in (条件)
好了,你会发现,通过这两种sql,实际上主要工作集中在前台界面的开发上,需要能根据用户的选择有效地拼写sql语句。
至于用户权限,这个是权限表的事情,与查询结果的速度无关,只涉及到能生成哪些条件
不明白再问我
Ⅳ 请教mssql语句
declare @key varchar(30)
set @key = 'abc--替换为要查找的字符串
DECLARE @tabName VARCHAR(40),@colName VARCHAR(40)
DECLARE @sql VARCHAR(2000)
declare @tsql varchar(8000)
DECLARE tabCursor CURSOR FOR
SELECT name from sysobjects WHERE xtype = 'u' AND name <> 'dtproperties'
OPEN tabCursor
FETCH NEXT from tabCursor INTO @tabName
WHILE @@fetch_status = 0
BEGIN
set @tsql = ''
DECLARE colCursor CURSOR FOR Select Name from SysColumns Where id=Object_Id(@tabName) and xtype=167
OPEN colCursor
FETCH NEXT from colCursor INTO @colName
WHILE @@fetch_status = 0
BEGIN
SET @sql = 'if(exists(select * from ' + @tabName + ' where '
SET @sql = @sql + @colName + ' like ''%' + @key + '%'')) begin select * from '
set @sql = @sql + @tabName + ' where ' + @colName + ' like ''%' + @key + '%'';select '''
+ @tabName + ''' as TableName end'
set @tsql = @tsql + @sql + ';'
FETCH NEXT from colCursor INTO @colName
END
exec(@tsql)
CLOSE colCursor
DEALLOCATE colCursor
FETCH NEXT from tabCursor INTO @tabName
END
CLOSE tabCursor
DEALLOCATE tabCursor
详细请关注我的博客
http://blog.csdn.net/szstephenzhou/article/details/8423499
Ⅳ mssql比较难的sql语句
declare
@正常值 double,
@一般异常值 double
...
正常小区平均值
select @正常值=avg(TCH分配成功率_Mean),avg(SD分配成功率_Mean),avg(话音信道利用率_Mean) from table where 小区关注程度='正常小区'
一般异常小区均值
select @一般异常值=avg(TCH分配成功率_Mean),avg(SD分配成功率_Mean),avg(话音信道利用率_Mean) from table where 小区关注程度='一般异常小区'
以此类推...
update table a set 小区关注程度='TCH分配成功率_Mean 大于正常' where (@正常值-@一般异常值)>(a.TCH分配成功率_Mean -@正常值)and a.小区关注程度= "一般异常小区"
一次类推...
Ⅵ MSSQL中如何用SQL语句为字段增加不为空的约束
如果原有字段改为非空,在有数据的情况要,要先将空值赋值再作修改:
update
tablename
set
fieldname=''
where
fieldname
is
null
alter
table
tablename
alter
column
fieldname
varchar(10)
not
null
Ⅶ MSSQL查询语句怎么写
selectfield1,
onfield1=field2(基准字段,可以多个)
wheretable1.field3=table2.field3
你好,很高兴回答你的问题,你可以试着用连接查询,希望能帮到你,where条件就用两个表的ID相等即可。希望能帮到你,望采纳。
Ⅷ MSSQL这个SQL语句该怎么写,高手来解答下
updateaseta.id1=b.namefromainnerjoinbona.id2=b.id2wherea.id2in(selectid2fromb)
避免理解错误,请提前备份A表
Ⅸ MSSQL数据库中添加字段的SQL语句怎么写
alter table 表名
add 字段名 字段类型
比如向test表添加一列 int型的字段 id语句为
alter table test
add id int
Ⅹ 一个mssql关于统计的sql语句
updatetablenameaseta.[tmoney1]=(selectsum(zmoney)fromtableNameb(nolock)
wherecharindex(a.uid,b.tuids)>=0
)
试一试吧,如有疑问,及时沟通!