我正在编写一个python程序,其中一个BLOB目录被上传到SQL Server。我注意到大于5MB的BLOB都会导致SQL服务器挂起,所以作为一种解决方法,我将这些BLOB分成5MB块并将它们相互附加。 因此,对于给定的BLOB,将使用以下命令上载第一个块:
INSERT INTO stored_files (blob_data, uploaded_files_id) VALUES (CONVERT(VARBINARY(MAX),"0x" + binascii.hexlify(data_chunk),1), uploaded_files_id_value); SELECT SCOPE_IDENTITY() AS stored_files_id
随后使用以下内容上传后续块:
UPDATE stored_files SET blob_data = blob_data + CONVERT(VARBINARY(MAX),"0x" + binascii.hexlify(data_chunk),1) WHERE stored_files_id = uploaded_files_id_value;
BLOB以VARBINARY(max)存储在数据库中。
当我尝试上传140,900kb的文件时,我的问题就出现了。出于某种原因,当我将其作为块上传时,它最终会占用我硬盘上的6GB。这个过程的哪个部分占用了这么多空间?