Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Apa SqlDbType yang dipetakan ke varBinary(max)?

SqlDbType.VarBinary dengan panjang -1 setara dengan VARBINARY(MAX), setidaknya secara teori. Tapi masalahnya sedikit lebih rumit, karena ada juga tipe (bukan nilai enum), yaitu SqlTypes.SqlBytes yang dapat digunakan. Dan ada SqlTypes.SqlFileStream yang dapat digunakan juga untuk VARBINARY(MAX) jenis, ketika mereka memiliki FILESTREAM atribut.

Tetapi masalahnya adalah bahwa tidak satu pun dari enum atau tipe ini yang mencakup masalah sebenarnya dengan bekerja dengan VARBINARY(MAX) kolom di ADO.Net:konsumsi memori. Semua jenis ini, ketika digunakan 'out-of-the-box', akan membuat salinan dari nilai yang dialokasikan sebagai array tunggal dalam memori, yang paling tidak berkinerja baik, tetapi karena konten menjadi lebih besar menjadi tidak mungkin untuk digunakan karena kegagalan alokasi . Saya memiliki beberapa artikel yang menunjukkan cara yang tepat untuk menangani VARBINARY(MAX) nilai di ADO.Net menggunakan semantik streaming yang menghindari pembuatan salinan dalam memori dari seluruh konten:

  • Unduh dan Unggah gambar dari SQL Server melalui ASP.Net MVC
  • FILESTREAM MVC:Unduh dan Unggah gambar dari SQL Server


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Masalah Replikasi Transaksional SQL Server

  2. Menulis file csv ke database SQL Server menggunakan python

  3. Bisakah saya mendapatkan nama semua tabel database SQL Server di aplikasi C#?

  4. CTE loop tak terbatas dengan OPTION (maxrecursion 0)

  5. SQL untuk menemukan karakter non-numerik pertama dalam sebuah string