打開TClientDataset並獲取包含3個TBlobfields的10.000行需要3分鐘。ClientDataset性能TBlobfields
開幕完全相同相同的數據,但鑄造BLOB字段爲varchar,需要1秒!
唯一的區別是,TQuery(或TsqlQuery)具有TStringfields而不是TBlobfields。但數據是一樣的。整個表格保存到文件大約3 MB。 我使用TsqlQuery或TQuery連接到(firebird)數據庫時得到了相同的結果。
數據庫位於運行Firebird 2.1的服務器上。當在客戶端上運行數據庫(兩者均爲< 1秒)時,差異消失了,所以它必須是網絡流量的東西,我想...
它變得更奇怪: 不管客戶端數據集實際上是填充了BLOB字段。 所以,如果ClientDataSet的只有1持久字段(數字整數),性能是一樣的...
這個bug(?)對我來說是一個很大的問題。我希望有人能解釋這個.. 。
謝謝。也許這就是問題所在,但是從1秒到3分鐘的表現會下降1次?這可能嗎? – 2012-03-17 20:44:27
我相信除此之外還有更多。當我讀到你的帖子時,我的第一個問題是「你爲什麼要一次檢索3000個斑點」?由於blob可以有各種大小和數據,除非你施放,否則你永遠不知道自己得到了什麼。你究竟在blob字段中存儲了什麼? – 2012-03-17 22:52:13
對不起,意思是10,000個blob .. – 2012-03-17 23:44:32