2016-04-15 59 views
1

我今天參加了一次採訪。採訪者問我有一張名爲「研究」的表格。這張表只有10個記錄。正常選擇查詢需要更多時間

現在,當我查詢表 select * from Research 它需要更長的時間約20秒。

可能是什麼原因?

我無法想象如果一張桌子只有10條記錄,這張桌子如何花費這麼多時間。

+2

** **堵/極其緩慢的IO子系統:)/掛起/很慢的網絡連接...... – lad2025

+0

其他交易我無法說清楚。你能詳細寫下嗎?沒有待處理的交易。 – NJadon

+1

這與阻塞相同。想象一下其他一些查詢在'Research'表上獲得獨佔鎖定(例如更新數據)。在讀取提交的隔離級別中,您無法讀取它。 – lad2025

回答

1

這個問題有點模糊,取決於他們僱用什麼,而不是一個好的。我的猜測是,這個問題是想讓你知道你會在這種情況下做什麼。像這些問題通常非常具體的問題來自他們親身經歷的問題。有很多事情會導致這種情況。我會問,它一直是這樣嗎?其他表具有相同的問題嗎?把它扔回去。質疑係統構建,數據庫和I/O的位置。如果OTJ剛剛開始,我的第一次檢查就是確保它們沒有用完磁盤空間。主要是因爲這是常見的,如果不抓住更多的事情會很快出現錯誤,如果他們還沒有。其次是使用DBCC SHOWCONTIG(Table_Name)檢查表的碎片級別。如果這裏有一些可怕的#(常見於堆表),一個簡單的解決方案是刪除並重新創建表。

0

這可能有多種原因:

,一方面一邊,「只有10條」可能是有點誤導:如果每個的這些記錄有幾個爲nvarchar(最大)列,這可能需要一些時間。此外,如果表格有100列,這將需要更長的時間。其他方面可能會計算成員等。最後但並非最不重要的,如果火過VPN查詢,這將是顯著慢...

此說:如果你能提供的結構,內容,服務器,連接等一些更多的信息,這將幫助你縮小問題的範圍。

+0

即使我沒有太多關於它的信息。這是一個面試問題。 – NJadon

+0

如果可以添加更多的可能性會很好。 – NJadon