① 這個sql語句寫的有錯誤,要怎麼改呢
INSERT INTO [fixoa].[dbo].[OA_T_KQLB]([Name])
SELECT [EmplName] FROM [srv_lnk].[a1].[dbo].[HrEmployee] where CardID in (select CardNo FROM [fixoa].[dbo].[OA_T_KQLB])
用的是insert into 而非 insert
where CardID = (select...)
如果(select...)反饋的是多條記錄,就用where CardID in (select...)
② 提高寫SQL語句的能力
個人覺的寫一段sql語句時先用簡單語言寫一遍,把他們的關系搞清,像多層嵌套之類的就會有很好邏輯,條理也清晰。。。
③ SQL 語句執行感覺很慢,怎麼回事
到這個數量級的全部更新,肯定會很慢。
第一。你的記錄不一定在同一個partition,
第二。不明白為什麼那麼多人建議你建索引,你建的索引越多,你的更新速度越慢,因為你更新記錄的同時,還有更新索引。
第三。你必須知道更新速度慢的瓶頸在哪裡。是讀寫太多,還是內存不夠,還是CUP不夠快,然後對症下葯。
下面介紹兩個簡單的辦法,也許有效:
第一:
把這個100W行的表縱向劈成兩個,用外鍵關系連接,一個裝小的,經常改變的數據比如ID,外鍵,狀態值,時間等,另一個裝大的,不經常改變的數據,比如很長的字元串,xml,text 等。
這樣更新時操作小的這個表,可以大大節約內存和CPU 開銷,降低磁碟操作。
壞處就是查詢時會慢些。
第二:
把這100W行橫向切成很多個表,比如每個月的記錄裝在一個表裡,這樣每個表的記錄數可能只有幾萬,查詢,更新都會快很多。
壞處是查詢,更新都不如原來好寫。
④ 資料庫寫入數據很卡,查詢也很慢,懂的高手請來,賞分解決可以追加分
看這種現象,估計是SQL語句寫的不夠好,SQL要用綁定變數的方式,影響查詢性能主要就是執行SQL過多,而且SQL寫的不好,無效索引過多,第一步必須優化SQL,之後就是清理歷史數據,清理無用索引,大表數據可以用分區表,還有就是tomcat的性能也需要注意,如果太卡,重啟一下tomcat試試,是否有效果
⑤ 在寫SQL語句的時候最常犯的錯誤有哪些
.......................
1、多寫空格,『,』等特殊符號
2、因個人思路問題造成的語法錯誤或者因使用不同的庫,因各庫間有差異導致的語法錯誤
3、欄位名,表名寫錯
暫時也就想這些,,,這個出錯的可能很多,開始養成良好的習慣就好,,,
⑥ sqlserver2008占內存高,一般是什麼原因
sqlserver2008會把整個資料庫緩存到內存裡面,就是說資料庫有多大,就會占內存多個空間,直到把內存占滿為止。
這樣可以提高資料庫速度的,而且一般是沒有問題的,如果要限制資料庫佔用內存控制,要在資料庫裡面限制,把佔用內存改成最大,在SQL server management studio 裡面右擊伺服器,點擊屬性,選擇內存,選擇最大內存。
⑦ 有沒有簡單的SQL語句編寫方式《總是寫不全導致整個大題做錯》
select
列名1,列名2,列名3...
from
表1
關聯關系表2on表1與關系表2
....
where
條件1and條件2and條件3...
groupby
列名1,列名2,列名3...
orderby
列名1,列名2,列名3...
這樣書寫一目瞭然,這也是公司現在所執行的SQL內部標准
⑧ 網站開發過程中,把sql語句寫在前台頁面,有什麼不好影響
讓人家跟容易攻破。
⑨ 寫sql語句時遇到的棘手問題
舉個例給你,希望對你有所幫助:
sql = "SELECT * FROM tables WHERE TRUE "
wheresql = ""
if y <> 0 then wheresql = wheresql + " AND year=" + y
if m <> 0 then wheresql = wheresql + " AND month=" + y
if d <> 0 then wheresql = wheresql + " AND day=" + y
if h <> -1 then wheresql = wheresql + " AND hour=" + y
rs.Open sql & wheresql, conn, 1, 1
原理是用if語句來控制生成的SQL語句 這樣就實現了多種組合