我目前正在處理性能/內存消耗優化的應用程序。要執行的任務之一是將一個表中與空數組對應的所有斑點替換爲空值;這應該減少分貝大小,內存消耗和加速負載。下面是表定義:SQL Server性能下降
CREATE TABLE [dbo].[SampleTable](
[id] [bigint] NOT NULL,
[creationTime] [datetime] NULL,
[binaryData] [image] NULL,
[isEvent] [bit] NULL,
[lastSavedTime] [datetime] NULL,
CONSTRAINT [PK_SampleTable] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
我更新的表,並替換爲NULL值在適當情況下(對應於空白在應用陣列的數據)的圖像字段的值(binaryData)。現在,我觀察運行普通SELECT * FROM SampleTable時的性能下降情況。
最初那些已更新的字段的長度爲512字節,但不確定是否重要。
即使數據對於不同的行是相同的,爲什麼選擇包含NULL值的blob所需的時間比選擇真實的二進制數據還要長?
你確定你是比較蘋果和蘋果嗎?你使用的兩個SQL命令是什麼?你是否從同一個地方/環境中運行它們? SSMS? – 2010-07-27 20:24:43
對不起,不清楚:我在這兩種情況下運行相同的'選擇*從表'查詢。我以兩種不同的方式檢查了性能: 1.從Management studio 2.運行連接到db的應用程序並運行查詢並檢查SQL分析器中的結果。 結果在兩種情況下都是相似的。 – Daniel 2010-07-27 20:32:29
什麼是類型'[dbo]。[image]'?這是一個自定義的CLR數據類型嗎? – 2010-07-27 21:58:23