當前位置:首頁 » 編程語言 » sql快速查詢
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql快速查詢

發布時間: 2022-05-29 04:07:42

1. 怎麼快速查找某兩列重復sql

如果兩列數據重復的話,可以通過count方法,找出計算條數大於1的,那麼表示此條數據重復:
sql: select district(*) from procts having count(*)>1;
備註:實際上兩列重復的話,都是針對某個欄位比較有意。
sql:select name,count(*) from usertable group by name having count(*)>1;
以上語句就是查詢出名字重復的所有用戶,並計算重復的次數。

2. sql2008資料庫,九百萬條數據,如何快速查詢

根據你說的需求:
"可程序中需要查詢每行的所有數據"、「查詢全部九百萬條數據」

-------------------------------
這樣的需求跟索引沒有關系了(因為已經肯定是走全表掃描的了),要提高效率的辦法就是:1、提高硬碟的io速度;2、增加內存以使sql server有更多的緩存

另外,你程序不要一次性取那麼多數據返回,這樣會拖死的,建議你考慮變換下處理邏輯(如:分批取回--可以根據id列值進行分批;將數據直接在服務端存成文本再傳回本地處理)。

"而是需要根據這些數據逐一進行其他功能的操作,這款程序是不聯網的"
--------------------------------
就算這樣的話,也不能一次性把9百萬數據一次性取回,如果你非要取出來再操作的話,那你得考慮分批去取。或者你把處理邏輯寫在存儲過程,然後由SQL SERVER本身去完成邏輯處理。總之,不管怎樣,你也是得優化你現在的處理邏輯(現有處理邏輯我覺得不合理,效率很低下)。

「真正部署到電力網的伺服器上速度會不會提高呢」
------------------------
伺服器當然比你本地要快得多啦,硬體配置根本就不同一個級別,但不管怎樣,還是建議你參考上面的建議優化你的處理邏輯才行,否則,你系統的效率將很低。

3. SQL數據查詢,求快速給代碼查詢謝謝

1.1:
INSERTINTO讀者表(借書證號,姓名,性別,部門,類別)VALUES(1110,王彤,女,21303班,學生);
1.2:
UPDATE書籍表SET作者='張三'WHERE書名='資料庫導論';
1.3:
DELETEFROM書籍表WHERE書名='英語';

2.1:
SELECT*FROM讀者表;
2.2:
SELECT圖書,作者FROM書籍表WHERE書名LIKE'%基礎%';
2.3:
SELECT姓名,性別,借書證號FROM讀者表WHERE部門='21303班'ORDERBY借書證號DESC;
2.4:
SELECTCOUNT(書名)FROM書籍表;
2.5:
SELECTB.姓名,B.部門,C.書名FROM借閱表A
LEFTJOIN讀者表BONA.借書證號=B.借書證號
LEFTJOIN書籍表CONA.圖書編號=C.圖書編號;

4. 在SQL中如何快速查詢某條記錄在所有表中是否存在

DECLARE @Name nvarchar(255),@Sql nvarchar(4000)
DECLARE TName CURSOR FOR
SELECT [name] FROM sysobjects WHERE xtype = 'U'
OPEN TName
FETCH NEXT FROM TName
INTO @Name
WHILE @@FETCH_STATUS = 0
BEGIN
SET @Sql='SELECT * FROM '+@name + 'WHERE XXX(你的數據條件)'
EXEC(@Sql)
FETCH NEXT FROM TName INTO @name
END
CLOSE TName
DEALLOCATE TName

5. 如何使用sql語句快速查詢一個oracle資料庫中有哪些視圖使用了dblink

dblink的特徵是@,也就是說出現這個就是dblink。

那麼可以selectowner,view_namefromdba_viewswheretext_vc like'%@%'

以上語句只能查詢建立語句在4000字元以內的,也就是說,視圖建立語句的長度要是大於4000字元(計算空格),那麼即使帶有@符號也有可能查不出來。

如果想完整查出來,那麼就需要查詢long格式的text欄位,long欄位比較特別,並不能之家查詢,具體的查詢方式請參考:long欄位查詢

當然,這樣查可能很慢,要是你的dnlink代碼只有一個或者兩個,那麼可以考慮都寫上去,這樣能快一些。

6. 怎樣用SQL語句查詢一個資料庫中的所有表

1、打開Microsoft SQL Server 2012,選中需要查詢所有表的資料庫。

7. 請問SQL如何實現批量查詢

好像解決辦法有點愚蠢,但是確實可以這么用
先把那1000多個號碼導出成文本
然後在sqlserver里建一張表
create
table
shenfenzheng
(shengfenzheng_id
varchar(18));
然後把導出的文本用UE編輯成
insert
into
shenfenzheng
values
('xxxxxxxxxxxxxxxxxx');
insert
into
shenfenzheng
values
('yyyyyyyyyyyyyyyyyy');
.
.
.
共1000條
然後在sqlserver里執行上述語句,記得後邊一定要帶分號
然後寫個查詢
select
*
from
工資表
where
身份證號
in(select
shenfenzheng_id
from
shenfenzheng);
得到的就是你想要的結果
---------補充---------
你所說的用戶是指客戶端程序的用戶,和資料庫用戶關系應該不大,各個客戶端應該在程序里都有連接資料庫的文件,也就是實際操作的用戶連接資料庫時用的都是資料庫同一個用戶,所以不用在每個用戶下都建臨時表

8. 如何提高sql資料庫的查詢速度

這是一個典型問題,在網上搜一下就行了。給你搜了一個粘過來看看
1.索引優化
建索引的選擇必須結合SQL查詢、修改、刪除語句的需要,一般的說法是在WHERE里經常出現的欄位建索引。如果在WHERE經常是幾個欄位一起出現而且是用AND連接的,那就應該建這幾個欄位一起的聯合索引,而且次序也需要考慮,一般是最常出現的放前面,重復率低的放前面。
SQL Server提供了一種簡化並自動維護資料庫的工具。這個稱之為資料庫維護計劃向導(Database Maintenance Plan Wizard ,DMPW)的工具也包括了對索引的優化。如果你運行這個向導,你會看到關於資料庫中關於索引的統計量,這些統計量作為日誌工作並定時更新,這樣就減輕了手工重建索引或者DBCC INDEXDEFRAG所帶來的工作量。如果你不想自動定期刷新索引統計量,你還可以在DMPW中選擇重新組織數據和數據頁,這將停止舊有索引並按特定的填充因子重建索引。
2.
改善硬體(雙CPU,Raid 5,增加內存)
tempdb這個臨時資料庫,它對性能的影響較大。tempdb和其他資料庫一樣可以增大,可以縮小。當數據文件需要增長的時候,通常不能保持剩餘部分的連續性。這時文件就會產生碎片,這種碎片會造成性能下降。這種碎片屬於外來性碎片。要阻止在tempdb中產生外來性碎片,必須保證有足夠的硬碟空間。一般將tempdb的容量放到平均使用容量。而你也應該允許tempdb自動增長,比如你有個一個超大的join操作,它建立了一個超過tempdb容量的時候,該查詢將失敗。你還要設置一個合理的單位增長量。因為如果你設得太小,將會產生許多外來性碎片,反而會佔用更多資源。sqlserver調優最有效的做法之一,就是把爭奪資源的操作獨立出去。tempdb就是一個需要獨立出去的部分而tempdb和其他系統庫一樣是公用的,是存取最可能頻繁的庫,所有處理臨時表、子查詢、GROUP BY、排序、DISTINCT、連接等等。它最適合放到一個具有快速讀寫能力的設備上。比如RAID0卷或RAID0+1卷上。
查詢語句一定要使用存儲過程;
3、查詢盡量使用TOP子句
4.將表按一定的約束分成子表,(如按分類)創建約束,在用Like 時,先用分類 and like , 應該可能解決問題. 而且效果立稈見影!(你要確定SQL會認識你建的分區視圖).我一個表有上百萬的記錄(700兆),用分區視圖後,查詢速度基本跟10萬行一樣.
如果還是太慢,還可以考濾分布式分區視圖!這總可以解決問題了吧!
關鍵在於你能否把大表按某種約束分解成子表.

9. SQL 批量查詢如何對應上數據

你可以查詢一下外連接的用法,舉個例子:
A 表 和 B 表 都有學生學號信息,B表比A表少,但要顯示A表所有的內容:
select * from test_a a,test_b b
where a.seq_no=b.seq_no(+);
這樣就表示即使在B表裡面沒有的記錄,也顯示A表的數據,這里的 test_a表和test_b表就是前面說的舉例表,表名可以隨意更改。

10. 通過sql語句快速查詢資料庫共有多少張表

select*fromdbo.sysobjectswherextype='U'

上面的sql語句,將展示當前DB下所有的數據表