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
)
試一試吧,如有疑問,及時溝通!