如何仅选择巨大二进制文件(文件)的一部分?

2024-02-08

我的问题是这样的:我有可能将巨大的文件存储在 SQL Server 2008 上的二进制(图像)字段中(> 1GB)。

如果我使用常规 select 语句返回整个二进制文件,则查询需要一分钟多的时间才能将结果返回到我的 .NET 程序,并且我的客户端应用程序会超时。我正在寻找的是 TSQL 代码,它将限制返回的数据的大小(可能是 300mb),允许我迭代剩余的块并防止超时。

这必须发生在 SQL 查询中,而不是在数据返回后的处理中。

我尝试过 SubString,MS 说它适用于二进制数据,但我得到的最多是 8000 字节。我尝试的最后一件事看起来像这样:

select substring(Package,0,300000000) 'package', ID from rplPackage where ID=0
--where package is the huge binary stored in a image field

由于客户端应用程序的原因,数据流也不是真正的选择。

有任何想法吗?


好吧,我明白了。做到这一点的方法是使用 substring 函数,MS 准确地说它适用于二进制文件。他们没有说 substring 只会返回 8,000 个字节,这让我很困惑。

换句话说,如果 blob 数据类型是图像并且您使用:

 select substring(BlobField,0,100000000) 
 from TableWithHugeBlobField
 where ID = SomeIDValue

 --all you'll get is the first 8K bytes (use DataLength function to get the size)

但是,如果您声明一个变量 varbinary(max) 并且 blob 字段数据类型是 varbinary(max) - 或者某个对您有用的大小 - 则使用 substring 函数将部分二进制带回您声明的变量中。这很好用。像这样:

 Declare @PartialImage varbinary(max) 
 select @PartialImage = substring(BlobField, 0, 100000000) --1GB
 from TableWithHugeBlobField
 where ID = SomeIDValue

 select DataLength(@PartialImage) -- should = 1GB

前面提出了问题,为什么要用SQL来存储文件数据呢?这是一个有效的问题;想象一下,您必须将数据作为文件复制到数百个不同的客户端设备(例如 iPhone),每个包都是独一无二的,因为不同的客户端有不同的需求,然后将文件包作为 blob 存储在数据库上更容易编程与以编程方式挖掘文件夹以找到正确的包以流式传输到客户端相比,这是相反的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何仅选择巨大二进制文件(文件)的一部分? 的相关文章

  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • sql server 按组排名

    问题看似简单 但我却无法理解 这是针对 sql 服务器的 what I have in a table What I need as a output cksum id cksum id 2162514679 204 2162514679
  • 了解 SSMS 2008 中关系的更新和删除规则

    当我们定义外键约束时 我对 SQL Server 2008 Management Studio 中的更新和删除规则的含义感到困惑 我也没有找到相关的帮助文档 例如F1帮助 这是屏幕快照 如果有人能描述它们的含义并推荐一些相关文档来阅读 我将
  • MySQL 按重复项从上到下排序

    我有一个lammer问题 因为我不是mysql专业人士 我有类似的字段 id color 1 red 2 green 3 yellow 4 green 5 green 6 red 我想按重复项进行分组 最常见的重复项先进行分组 所以应该这样
  • Amazon RDS for SQL Server 是否支持 SSIS?

    从谷歌搜索中读到一些相互矛盾的答案 不确定答案是是 否还是可能 我觉得读的时候已经很清楚了this http docs aws amazon com AmazonRDS latest UserGuide CHAP SQLServer htm
  • 探查器模板可以迁移到较新版本的 SQL Profiler 吗?

    是否可以将 Profiler 模板迁移到较新版本的 SQL Server 就我而言 我想将 SQL 2008 模板带到 2012 年 我尝试过 1 直接文件复制和 2 导出 导入 在这两种情况下 旧模板都会运行 但无法修改 修改后会出现以下
  • 选择具有 SQL Server XML 列类型的特定行

    我正在尝试从类似于以下定义的表中选择数据 Column Data Type Id Int DataType Int LoggedData XML 但我只想选择具有特定 DataType 值并且在 LoggedData 列中包含字符串 或评估
  • 用更轻的解决方案替换完整的 ORM(JPA/Hibernate):推荐的加载/保存模式?

    我正在开发一个新的 Java Web 应用程序 并且正在探索保存数据的新方法 对我来说是新方法 我主要有 JPA 和 Hibernate 的经验 但是 除了简单的情况之外 我认为这种完整的 ORM 可能会变得相当复杂 另外 我不太喜欢和他们
  • SELECT 语句会受到 SQL 注入攻击吗?

    实际上有2个问题 我知道我必须尽可能多地使用存储过程 但我想知道以下内容 A 我可以从 SELECT 语句 例如 Select from MyTable 获得 SQL 注入攻击吗 B 另外 当我在 ASP NET 中使用 SQLDataSo
  • 在 C#.NET 应用程序中使用 SQL Server 时间数据类型?

    如何使用 SQLtimeSQL Server 2008 中 C NET 中引入的数据类型 我一直在努力让它发挥作用 但没有成功 这是一个MSDN 文章 http msdn microsoft com en us library bb6751
  • 更改表分布(Azure 数据仓库)

    在急着下班的过程中 我在一个采用循环分配的新桌子上运行了一个大型插入 我知道这不太可能 但是有没有办法将表的分布从循环更改为哈希分布 很遗憾ALTER TABLE不支持更改 Azure SQL 数据仓库中表的分布 您可以做的下一个最好的事情
  • XML 解析:格式良好的检查:未声明的实体

    我正在使用 SSMS 2008 但收到以下错误 你知道这意味着什么吗 Msg 9448 Level 16 State 1 Line 4 XML parsing line 1 character 89 well formed check un
  • C#的数组列表可以用来填充SSIS对象变量吗?

    我已在 C 脚本中填充了一个列表 并将其值分配给 SSIS 对象变量 然后 我使用该对象变量通过循环遍历 For every do 枚举器来执行一些 SQL 查询 我尝试通过 Foreach ado 枚举器执行此操作 但出现错误 X 变量不
  • 临时表是线程安全的吗?

    我正在使用 SQL Server 2000 它的许多存储过程广泛使用临时表 数据库的流量很大 我担心创建和删除临时表的线程安全性 假设我有一个存储过程 它创建了一些临时表 它甚至可以将临时表连接到其他临时表等 并且还可以说两个用户同时执行存
  • SQL Server 2014 安装中缺少 SQL Server Integration Services

    我正在尝试使用 Integration Services 安装 SQL Server 2014 Here https www microsoft com en US download details aspx id 42299是我以前用工具
  • 如何在NiFi中映射流文件中的列数据?

    我有 csv 文件 其结构如下 Alfreds Centro Ernst Island Bacchus Germany Mexico Austria UK Canada 01 02 03 04 05 现在我必须将这些数据移入数据库 如下所示
  • SQL - != 'NULL' 的解释

    我的SSMS代码如下 Select top 50 From FilteredContact Where statuscode 1 and emailaddress1 NULL and telephone1 NULL and address1
  • 可以获取SQL Server中当前执行的存储过程的行号吗?

    几年前 我在 Sybase Delphi 环境中工作 使用 BDE 连接到数据库服务器 我们有一个 Delphi 小应用程序 给定当前正在执行的存储过程的名称 它可以告诉您当前正在执行该存储过程的哪一行 这对于调试似乎挂起的存储过程非常有用
  • 如何跨多个表强制执行 CHECK 约束

    我有一个在 Microsoft SQL Server 2012 Express 中记录奶牛繁殖信息的数据库 显然 一头牛只有在出生后才能配种 并且在其一生中可能会配种多次 我需要在我的数据库中强制执行这些约束 我目前已经根据下图安排了一个架
  • 索引数量越少意味着插入、更新和删除速度更快? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi

随机推荐

  • Chart.js 圆环图大小调整

    我在用着ng2 图表 https github com valor software ng2 charts在 Angular 项目中 我有该项目的两个版本 当前的生产版本是旧版本 并且使用旧版本的 ng2 charts 以及扩展的 Char
  • Rust 中与闭包和生命周期作斗争

    我正在尝试将一些基准测试从 F 移植到 Rust F 代码如下所示 let inline iterNeighbors f i j f i 1 j f i 1 j f i j 1 f i j 1 let rec nthLoop n s1 Ha
  • 休息删除线

    是否可以在重组文本中删除文本 例如呈现为
  • 将自定义控件中的编辑框动态绑定到托管 bean

    我读过许多关于在自定义控件中动态绑定字段的优秀帖子和文章 但它们都假设了文档数据源 我想允许托管 bean 数据源的可能性 我尝试将属性类型设置为com ibm xsp model DataSource or com ibm xsp ext
  • Enunciate 能否为处理泛型类型的 API 生成文档?

    给定一个抽象的通用 Resource 类和一个具体的实现 public abstract class AbstractResource
  • 如何阻止混淆整个包?

    我需要防止 Proguard 混淆包中的任何类com foo 我努力了 keep com foo
  • 如何模拟当前日期?

    我的代码中有一个方法可以验证当天是否正常工作 它会为此检查数据库日历 方法如下所示 public boolean iBusinessDayToday LocalDate today LocalDate now logic with toda
  • 基于属性值的条件(XML 架构)

    是否可以在 XML 模式中定义基于属性值的条件 例如 当test attrib one 我想one element被允许和强制或当test attrib two 我想two element是允许的和强制性的 例如 有效文件是
  • 如何使用控制台生产者在 Kafka 0.11 中生成带有标头的消息?

    如何使用控制台生产者在 Kafka 0 11 中生成带有标头的消息 我在Kafka文档中没有找到任何关于此的描述 Update 从 Kafka 3 2 开始 您可以使用以下命令生成带标题的记录kafka console producer s
  • 将变量从组件传递到模型范围

    我正在使用基于 Laravel 的 OctoberCMS 我正在尝试从 URL 获取标识符并将其传递到范围以过滤数据库结果 this gt property username 起作用并从 URL 返回用户名 但是如何将它传递给模型和范围函数
  • JSON 点符号转字符串

    我在 javascript 中使用 JSON 并且尝试获取点表示法表示的字符串值 例如AAA BBB 0 CCC DDD 5 EEE 123 采用 JSON 点表示法格式 但我想获得价值AAA BBB 0 CCC DDD 5 EEE作为字符
  • 我可以有一个模板函数指针的 std::vector 吗?

    我有一个模板函数 我想将它的指针存储在std vector 该函数如下所示 template
  • 在easeljs中添加一个简单的图像

    这是我的 html 代码
  • css 字体大小和行高与基线不匹配

    我正在尝试做一些应该非常简单的事情 但我在失败和论坛之间度过了一天 我想调整我的字体以匹配我的基线 在 indesign 中只需点击一下即可 但在 css 中这看起来是地球上最困难的事情 让我们举一个有理值的简单例子 在这张图片上 我每 2
  • SQL 查询检查名称是否以元音开头和结尾

    我想查询名单CITY表中的名称STATION id city longitude latitude 它们的第一个和最后一个字符都是元音 结果不能包含重复项 为此 我写了一个查询 例如WHERE NAME LIKE a 它有 25 个条件 每
  • Webpack启动,导入错误

    我正在开始使用 Webpack 但已经遇到了以下问题 我创建了一个 app index js 文件 如文档中指定的 我还创建了一个 index html 文件 从文档中复制了 HTML 和 CSS 我在 CLI 中运行了正确的命令 包括生成
  • Artifactory 缺少 Android 依赖项

    相关找不到runtime jar android arch lifecycle runtime 1 0 0 https stackoverflow com questions 50563338 could not find runtime
  • 如何仅选择 BLOB 列的一部分

    在 SQLite 数据库中 如何从 BLOB 字段中仅选择 1kb 我想象它是这样的 SELECT PART field name startIndex bytes AS data FROM table 这可能吗 Use substr ht
  • JTextArea 中 setText() 的机制?

    我尝试在我的中显示一些文字JTextArea在运行时 但是当我使用循环时setText按顺序显示文本 它只显示最后一个循环的文本 这是我的代码 private void jButton1ActionPerformed java awt ev
  • 如何仅选择巨大二进制文件(文件)的一部分?

    我的问题是这样的 我有可能将巨大的文件存储在 SQL Server 2008 上的二进制 图像 字段中 gt 1GB 如果我使用常规 select 语句返回整个二进制文件 则查询需要一分钟多的时间才能将结果返回到我的 NET 程序 并且我的