问题标签 [filetable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server-2012 - Sql Server FileTable 缺点
我正在考虑使用文件表,而不是简单地将文件作为二进制数据存储在数据库中,或者在数据库中存储包含文件共享 URL 的列。我们的应用程序使用实体框架,所以这是我看到的一个小问题,但很容易解决。另一个是,据我所知,文件必须存储在与数据库相同的服务器上的文件夹路径中,例如“MachineName\InstanceName\FileShare”(可以配置为使文件夹可以存在于另一台服务器上吗? )。
使用 FileTables 还有其他缺点吗?
sql-server-2012 - 更改数据库以包含 FileTable 会给我语法错误
我有一个现有的数据库,我想利用 SQL Server 2012 中的 FileTable 功能。在线查看,这是我更新数据库的方式:
但是,我得到Incorrect syntax near 'NAME'
错误。
我究竟做错了什么?
sql-server - 跨服务器访问 SQL Server FileTable 共享
您能否指出有关跨服务器访问 SQL Server FileTable 共享的任何信息?我们想用它来管理我们的 Web 应用程序(在负载平衡配置中运行)的可变内容。该共享在 SQL Server VM 上本地运行时效果很好,但是当尝试从 Web Server VM 连接到它时它不起作用,无论我在哪个域帐户下运行(甚至是具有 SQL Server SysAdmin 的域帐户) .
请注意,我们有连接到 SQL Server,只是没有 FileTable 文件共享。该连接跨越私有子网。我们的私有 AD 仅具有我们私有域内机器的私有网络的 DNS 记录。
在托管 SQL Server 的 VM 上运行命令提示符并使用没有任何数据库权限的域帐户时,我们会access denied
在尝试访问 FileTable 共享时得到预期的结果 ( ):<image>
在托管 SQL Server 的 VM 上运行命令提示符并使用具有数据库权限的域帐户时,我们access
在尝试访问 FileTable 共享时也会得到预期的结果 ( ):<image>
在其中一个 Web 服务器 VM 上运行命令提示符并使用具有数据库权限的域帐户时,我们device is not ready
在尝试访问 FileTable 共享时得到一个 UNEXPECTED 结果 ( ):<image>
我们可以从 Web 服务器连接到连接到 SQL Server VM 的任何磁盘上的默认共享:<image>
我进行了广泛的搜索并查看了许多描述设置和使用 SQL Server FileTables 的文章。这些文章都没有描述我看到的问题。
留给我自己的设备,我下一步将FileTable
在非 Azure 环境中配置 s 以查看结果是否相似。但这是我没有时间做的很多工作。作为一种变通方法,我可能会使用 SSIS 在 SQL Server VM 上的另一个共享上镜像 SQL Server FileTable 共享,以便在 Web 服务器上运行的应用程序可以间接访问 FileTable 共享。
你知道我可能没有想到的是什么吗?我们如何从另一台机器连接到 SQL Server FileTable 共享?您能否指出任何可能有助于解决此问题的资源?
sql-server-2012 - 如何在 SQL Server 2012 FileTable 文件夹共享中启用权限?
成功创建 FileTable 后,我尝试查看文件共享,但我的权限被拒绝。在 Management Studio 中,右键单击 FileTable 然后“探索 FilteTable 目录”给我以下错误消息:
文件位置无法打开。要么未启用访问权限,要么您没有相同的权限。
如果我尝试使用 \mycomputer\sqlexpress... 手动访问共享,我仍然被拒绝访问。
这是在我的本地机器上运行的 SQL Express。我正在从同一台机器访问这个共享。我错过了什么?
c# - SQL Server 2012 FileTable 创建文件时性能慢(集成 Lucene.NET)
我一直在设计一种使用 SQL Server FileTable 将 Lucene.NET 与 SQL Server 集成的方法的原型。使用非常方便,代码也很简单——自定义Lucene.NET不需要做任何特别的事情。我寻求的优势主要是操作性和企业性 - 我的公司运行 SQL Server 24/7 并将搜索索引保持在相同的控制空间中对我们来说有很多优势(......而且我确实意识到我不会获得精确的事务一致性,没关系)。
问题:无论我做什么,在使用 WinAPI(通过 System.IO.FileStream)写入 SQL FileTable UNC 共享中的文件时,似乎都有大约 200 毫秒(+- 20-30 毫秒)的开销。这对于 Lucene.NET 来说很重要,因为直接对我的本地文件系统执行索引写入操作大约需要 50 毫秒,而对 FileTable 的相同操作需要大约 2-3 秒!
为了彻底检查这一点,我创建了另一个实验,该实验以 10KB、1MB 和 10MB 写入 3 个新(创建)文件。我将这 3 个文件写入:
- 本地目录 (
c:\Search\\
) \\\127.0.0.1\\Search\\
通过 UNC 路径 ( )的非 FileTable 共享- FileTable UNC 路径 (
\\\127.0.0.1\[instance-share]\\search_index\\
)
使用System.Diagnostics.Stopwatch
,写入本地目录的速度与预期一样快,写入非 FileTable 共享的速度较慢但相当,并且 FileTable 慢了一个数量级。有趣的是,在案例 2 和案例 3 中,2 个较大的文件大小表现相似,这让我相信文件创建的开销与时间有关。
问题:有没有人更深入地了解为什么使用 FileTable 创建文件如此“慢”?
这是一个并发活动很少的开发虚拟机(4GB RAM,2 个 vCPU,可能存在一些 IO 争用,但这些测试是相对比较)。插入到 SQL Server 中,在这个盒子上插入一个微不足道的行几乎没有达到 1 毫秒。
我没有方便的代码,但很快就会发布编辑(带有确切的时间) - 它非常简单,只需在循环中将静态初始化的字节数组的 4K 块写入所需的大小。
我确实实施了以下建议,并调整了 SMB 堆栈,性能没有差异:http: //blogs.msdn.com/b/blogdoezequiel/archive/2011/02/11/best-practices-on-filestream- implementations.aspx#.UkbEYtKshcZ
编辑:输出测试控制台的计时:
源代码(非常简单,为了完整性而发布):控制台主,省略了 ASCII 艺术:
实现类:
backup - 通过 SQL Server 2012 备份和恢复文件 FileTable
我正准备在 SQL Server 2012 中使用 FileTable 功能,但我不清楚备份如何使用此功能:
1) 完整的数据库备份是否包括 FileTable 文件?
2) 例如,我将如何执行单个文件的还原?
permissions - SQL Server 2012 SP 1 - 在文件表上插入权限
我是 SQL Server 文件表的新手,所以我试图了解表权限如何影响文件共享。我要做的是允许用户读取和创建/添加文件到文件共享,但不允许他们更新或删除已经存在的文件。
从我读过的内容来看,我应该能够向用户授予 SELECT 和 INSERT 权限以获取此功能,但情况似乎并非如此。
我可以让用户能够创建/添加文件到文件共享的唯一方法是如果我授予 UPDATE 权限,这也使他们能够更新现有文件。
这与其他人的经历一致吗?是否有可能获得我正在寻找的功能?
谢谢。
sql-server - SQL Server 的文件表是否适合存储大文件(大于 10 GB)?
有一个实验室项目。保存实验室数据(原始数据和相关信息)以供研究多年的要求。所以数据要保存好几年,但是数据太大了,每个原始数据都超过10GB。如果我们将原始数据存储在 SQL Server 的文件表中,并将相关信息存储在一个普通的 SQL Server 表中,几个月或几年后,数据库的大小已经大到我们必须将一些历史数据移出数据库。
也许我们可以使用将文件(在不同的硬盘中)添加到文件流文件组中用于文件表(存储原始数据),但我觉得这不适合维护 SQL Server。我们必须保持原始数据和关系信息的一致性。
事实上,我们已经考虑使用磁带来保存历史原始数据。我们想用硬盘保存最新的原始数据,用磁带保存历史原始数据。当我们将历史数据移动到磁带上时,我们将移动日志记录在一个表中,以便我们可以知道历史数据被移动到哪里并尽快将其取出。
对我有什么好的建议:
- 如何存储原始数据和相关信息?
- filetable 是否适合该场景?
- 这种情况还有其他好的解决方案吗?
sql-server - 如果我将文件移动到同一个文件表中的其他目录,stream_id 会改变吗?
我正在使用 MSSQL 2012 及其称为文件表的功能来存储存储在分层目录中的大量文件。我通过列 stream_id 从其他自定义表中引用文件中的条目,该列对于文件表上的每条记录都是唯一的。有时我需要将文件表上的文件移动到同一个文件表上的其他位置。到目前为止,我注意到如果我将文件移动到另一个目录,stream_id 不会改变。但是,现在在生产环境中,stream_id 在移动后确实发生了变化,因此我的自定义表引用了文件表上不存在的条目。
用于移动我正在使用的文件File.Move(source, target)
;
在我的生产环境中部署文件表是否有问题,或者它只是一个特性,如果我更改位置,stream_id 有时会更改?
我没有在互联网上找到任何关于 stream_id 及其生命周期的参考资料。
sql-server - 如何向 SQL Server FileTable 其他 Windows 用户授予权限
在 SQL Server 2012 上,我已成功配置 FILESTREAMs 并创建了一个 FileTable 表。我可以通过 UNC 路径 ( \\server\share\tabledirectory...
) 访问 FileTable。但是,对于如何授予权限以便其他 Windows 用户可以远程访问它,我感到很困惑。我尝试将 Windows 用户帐户的 select/insert/update/delete 权限授予 FileTable 表:
...但这没有任何效果。