SlideShare a Scribd company logo
1 of 29
Download to read offline
SQL Server 2012: File Tables
File storage connected to RDBMS
• There are lots of files
• We need to store them somewhere
• We need to query over them
• Files have metadata information like dates,
size, content type etc.
• It needs to be queried as well
Why we need it?
• Software that have to deal with files
• File libraries, archives, storages etc.
• Document-centric software
• Email systems with attachments
• Content Management Systems
• Version Control Systems
• and so on and so on…
Who Needs It?
1. Store files to any File System (or external
storage), keep related information in DB
Tables, sync both places
2. Store all files and related information in DB
Tables
Options available before – 1/3
1. Store files to any File System (or external
storage), keep related information in DB Tables,
sync both places
– the only problem here is to keep both places in
sync
– seems to be the most common scenario
Options available before – 2/3
2. Store all files and related information in DB
Tables
• the files content is stored in BLOBs
• huge database size because of content stored within
database file
Options available before – 3/3
SQL Server 2012 brings a new feature:
• FileTables
MSDN:
• “You can store files and documents in special
tables in SQL Server called FileTables, but access
them from Windows applications as if they were
stored in the file system, without making any
changes to your client applications”
New Option – SQL FileTables
Technically FileTables represent both options
combined.
• but automated by SQL Server 2012 Engine
• based on SQL Server 2008/R2 FileStreams
Technically FileTables Are
• Windows File I/O compatibility:
– non-transacted streaming access and in-place updates
– A hierarchical namespace of directories and files
– Storage of 10 file attributes such as Created Date and
Modified Date
– Support for both file and directory management Win
API
• Full-text search over files and metadata
• Semantic search over files and metadata
FileTables Benefits
• Do not support Memory-Mapped Files
– easily reproducible using Windows Notepad
FileTables Restrictions
Installation Options – 1/2
Installation Options – 2/2
<machine-name>
<sql-instance-level FILESTREAM share>
<database-level directory>
<FileTable directory>
Sample:
shirmanovMSSQLSERVERFileTablesDbDocu
ments
UNC Directory Hierarchy
CREATE DATABASE [FileTablesDb]
ON
PRIMARY (NAME = PrimaryFG, FILENAME =
N'c:SqlFileStreamFileTablesDb.mdf'),
FILEGROUP FileStreamFG CONTAINS FILESTREAM (NAME =
FileStreamFG, FILENAME = N'c:SqlFileStreamFileStream')
LOG ON (NAME = FileTablesDbLog, FILENAME =
N'c:SqlFileStreamFileTablesDb.ldf')
WITH FILESTREAM (NON_TRANSACTED_ACCESS = FULL,
DIRECTORY_NAME = N'FileTablesDb')
GO
Create FileStream-enabled Database
CREATE TABLE Documents
AS FileTable
WITH (
FileTable_Directory = 'Documents',
FileTable_Collate_Filename = database_default
);
GO
Create a FileTable
SELECT * FROM sys.filetables;
GO
Create a FileTable
-- enumerate all FileTables in database
SELECT
db_name() AS db_name,
db_id() AS db_id,
SC.[name] AS schema_name,
SO.[schema_id],
SO.[name] AS object_name,
FT.[object_id],
FT.[directory_name],
FT.[filename_collation_id],
FT.[filename_collation_name],
FileTableRootPath() + '' + FT.[directory_name] AS unc_path
FROM
[FileTablesDb].[sys].[filetables] FT
LEFT JOIN [sys].[objects] SO
ON FT.[object_id] = SO.[object_id]
LEFT JOIN [sys].[schemas] SC
ON SC.[schema_id] = SO.[schema_id];
Enumerate All FileTables in Database
• Copy files to UNC share and show them in
database table
Demo
How FileStream Catalog Looks Like
SELECT SERVERPROPERTY
(N'FILESTREAMShareName');
Get SQL Instance-level FILESTREAM Share Name
SELECT DB_NAME(D.database_id) AS
"database_name", D.database_id,
D.non_transacted_access,
D.non_transacted_access_desc, D.directory_name
FROM sys.database_filestream_options D
WHERE directory_name IS NOT NULL;
GO
Get Database-level Directory Name
-- Get path to FileTable at once - uses Current DB
SELECT FileTableRootPath() AS 'FileTableRootPath'
GO
Get Path to FileTable at Once
-- Get a List of Open File Handles
-- Associated with a FileTable
SELECT * FROM
sys.dm_filestream_non_transacted_handles;
GO
Get a List of Open File Handles
-- Kill all open handles in a single filetable
EXEC
sp_kill_filestream_non_transacted_handles
@table_name = 'Documents';
GO
Kill All Open Handles
-- To identify open files and the associated locks
SELECT opened_file_name
FROM
sys.dm_filestream_non_transacted_handles
WHERE fcb_id IN
( SELECT request_owner_id FROM
sys.dm_tran_locks );
GO
Identify Open Files & Associated Locks
INSERT INTO dbo.Documents
(Name, file_stream)
VALUES ('Testfile1.txt', 0x);
Insert a file to the Root via T-SQL
SELECT @pathstring = path_locator.ToString()
from dbo.Documents
where name = 'SQLFiles';
SET @newpath = @pathstring + convert(varchar(20), convert(bigint,
substring(convert(binary(16), newid()), 1, 6))) +
'.' + convert(varchar(20), convert(bigint, substring(convert(binary(16),
newid()), 7, 6))) + '.' + convert(varchar(20), convert(bigint, substring(
convert(binary(16), newid()), 13, 4))) + '/';
INSERT INTO dbo.Documents
(Name, path_locator, file_stream)
VALUES ('SQLFilesTest.txt', @newpath, 0x);
Insert a file to the folder via T-SQL
-- Find duplicate files by name and size
SELECT
COUNT(*) AS duplicates_number,
MAX(D.stream_id) AS stream_id, D.name,
D.file_type, D.cached_file_size
FROM dbo.Documents D
GROUP BY D.name, D.file_type, D.cached_file_size
HAVING COUNT(*) > 1;
Find Duplicate Files
• http://msdn.microsoft.com/en-
us/library/ff929144.aspx
• http://sqlskills.com/BLOGS/BOBB/post/SQL-
Server-2012-FileTables-in-T-SQL-part-3-
hierarchyid-methods.aspx
References

More Related Content

What's hot

What's hot (20)

Big data with HDFS and Mapreduce
Big data  with HDFS and MapreduceBig data  with HDFS and Mapreduce
Big data with HDFS and Mapreduce
 
Creating database
Creating databaseCreating database
Creating database
 
Oracle DBA
Oracle DBAOracle DBA
Oracle DBA
 
Directory services by SAJID
Directory services by SAJIDDirectory services by SAJID
Directory services by SAJID
 
Oracle Tablespace - Basic
Oracle Tablespace - BasicOracle Tablespace - Basic
Oracle Tablespace - Basic
 
tempdb and Performance Keys
tempdb and Performance Keystempdb and Performance Keys
tempdb and Performance Keys
 
Oracle dba training
Oracle  dba    training Oracle  dba    training
Oracle dba training
 
NOSQL Databases types and Uses
NOSQL Databases types and UsesNOSQL Databases types and Uses
NOSQL Databases types and Uses
 
Oracle DBA Tutorial for Beginners -Oracle training institute in bangalore
Oracle DBA Tutorial for Beginners -Oracle training institute in bangaloreOracle DBA Tutorial for Beginners -Oracle training institute in bangalore
Oracle DBA Tutorial for Beginners -Oracle training institute in bangalore
 
Selecting best NoSQL
Selecting best NoSQL Selecting best NoSQL
Selecting best NoSQL
 
Apache HBase 0.98
Apache HBase 0.98Apache HBase 0.98
Apache HBase 0.98
 
Ms sql server architecture
Ms sql server architectureMs sql server architecture
Ms sql server architecture
 
Nosql databases
Nosql databasesNosql databases
Nosql databases
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQL
 
Basic oracle-database-administration
Basic oracle-database-administrationBasic oracle-database-administration
Basic oracle-database-administration
 
Active Directory & LDAP Authentication Without Triggers
Active Directory & LDAP Authentication Without TriggersActive Directory & LDAP Authentication Without Triggers
Active Directory & LDAP Authentication Without Triggers
 
Nosql
NosqlNosql
Nosql
 
Ldap intro
Ldap introLdap intro
Ldap intro
 
Xml
XmlXml
Xml
 
Open LDAP vs. Active Directory
Open LDAP vs. Active DirectoryOpen LDAP vs. Active Directory
Open LDAP vs. Active Directory
 

Similar to SQL Server 2012 - FileTables

Hadoop Distributed File System
Hadoop Distributed File SystemHadoop Distributed File System
Hadoop Distributed File System
Milad Sobhkhiz
 
2005_604_Wagner_slides
2005_604_Wagner_slides2005_604_Wagner_slides
2005_604_Wagner_slides
Mary Wagner
 
Javase7 1641812
Javase7 1641812Javase7 1641812
Javase7 1641812
Vinay H G
 

Similar to SQL Server 2012 - FileTables (20)

Sql server lesson3
Sql server lesson3Sql server lesson3
Sql server lesson3
 
File system
File systemFile system
File system
 
Ch10 file system interface
Ch10   file system interfaceCh10   file system interface
Ch10 file system interface
 
CNIT 152 13 Investigating Mac OS X Systems
CNIT 152 13 Investigating Mac OS X SystemsCNIT 152 13 Investigating Mac OS X Systems
CNIT 152 13 Investigating Mac OS X Systems
 
CNIT 152: 13 Investigating Mac OS X Systems
CNIT 152: 13 Investigating Mac OS X SystemsCNIT 152: 13 Investigating Mac OS X Systems
CNIT 152: 13 Investigating Mac OS X Systems
 
CNIT 121: 13 Investigating Mac OS X Systems
CNIT 121: 13 Investigating Mac OS X SystemsCNIT 121: 13 Investigating Mac OS X Systems
CNIT 121: 13 Investigating Mac OS X Systems
 
UNIT7-FileMgmt.pptx
UNIT7-FileMgmt.pptxUNIT7-FileMgmt.pptx
UNIT7-FileMgmt.pptx
 
Hadoop Distributed File System
Hadoop Distributed File SystemHadoop Distributed File System
Hadoop Distributed File System
 
File Management & Access Control
File Management & Access Control File Management & Access Control
File Management & Access Control
 
Windowsforensics
WindowsforensicsWindowsforensics
Windowsforensics
 
File system in operating system e learning
File system in operating system e learningFile system in operating system e learning
File system in operating system e learning
 
AHUG Presentation: Fun with Hadoop File Systems
AHUG Presentation: Fun with Hadoop File SystemsAHUG Presentation: Fun with Hadoop File Systems
AHUG Presentation: Fun with Hadoop File Systems
 
2005_604_Wagner_slides
2005_604_Wagner_slides2005_604_Wagner_slides
2005_604_Wagner_slides
 
File System operating system operating system
File System  operating system operating systemFile System  operating system operating system
File System operating system operating system
 
Javase7 1641812
Javase7 1641812Javase7 1641812
Javase7 1641812
 
File Management (1).pptx
File Management (1).pptxFile Management (1).pptx
File Management (1).pptx
 
Os6
Os6Os6
Os6
 
9781111306366 ppt ch11
9781111306366 ppt ch119781111306366 ppt ch11
9781111306366 ppt ch11
 
File Management
File ManagementFile Management
File Management
 
File System.pptx
File System.pptxFile System.pptx
File System.pptx
 

More from Sperasoft

More from Sperasoft (20)

особенности работы с Locomotion в Unreal Engine 4
особенности работы с Locomotion в Unreal Engine 4особенности работы с Locomotion в Unreal Engine 4
особенности работы с Locomotion в Unreal Engine 4
 
концепт и архитектура геймплея в Creach: The Depleted World
концепт и архитектура геймплея в Creach: The Depleted Worldконцепт и архитектура геймплея в Creach: The Depleted World
концепт и архитектура геймплея в Creach: The Depleted World
 
Опыт разработки VR игры для UE4
Опыт разработки VR игры для UE4Опыт разработки VR игры для UE4
Опыт разработки VR игры для UE4
 
Организация работы с UE4 в команде до 20 человек
Организация работы с UE4 в команде до 20 человек Организация работы с UE4 в команде до 20 человек
Организация работы с UE4 в команде до 20 человек
 
Gameplay Tags
Gameplay TagsGameplay Tags
Gameplay Tags
 
Data Driven Gameplay in UE4
Data Driven Gameplay in UE4Data Driven Gameplay in UE4
Data Driven Gameplay in UE4
 
Code and Memory Optimisation Tricks
Code and Memory Optimisation Tricks Code and Memory Optimisation Tricks
Code and Memory Optimisation Tricks
 
The theory of relational databases
The theory of relational databasesThe theory of relational databases
The theory of relational databases
 
Automated layout testing using Galen Framework
Automated layout testing using Galen FrameworkAutomated layout testing using Galen Framework
Automated layout testing using Galen Framework
 
Sperasoft talks: Android Security Threats
Sperasoft talks: Android Security ThreatsSperasoft talks: Android Security Threats
Sperasoft talks: Android Security Threats
 
Sperasoft Talks: RxJava Functional Reactive Programming on Android
Sperasoft Talks: RxJava Functional Reactive Programming on AndroidSperasoft Talks: RxJava Functional Reactive Programming on Android
Sperasoft Talks: RxJava Functional Reactive Programming on Android
 
Sperasoft‬ talks j point 2015
Sperasoft‬ talks j point 2015Sperasoft‬ talks j point 2015
Sperasoft‬ talks j point 2015
 
Effective Мeetings
Effective МeetingsEffective Мeetings
Effective Мeetings
 
Unreal Engine 4 Introduction
Unreal Engine 4 IntroductionUnreal Engine 4 Introduction
Unreal Engine 4 Introduction
 
JIRA Development
JIRA DevelopmentJIRA Development
JIRA Development
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to Elasticsearch
 
MOBILE DEVELOPMENT with HTML, CSS and JS
MOBILE DEVELOPMENT with HTML, CSS and JSMOBILE DEVELOPMENT with HTML, CSS and JS
MOBILE DEVELOPMENT with HTML, CSS and JS
 
Quick Intro Into Kanban
Quick Intro Into KanbanQuick Intro Into Kanban
Quick Intro Into Kanban
 
ECMAScript 6 Review
ECMAScript 6 ReviewECMAScript 6 Review
ECMAScript 6 Review
 
Console Development in 15 minutes
Console Development in 15 minutesConsole Development in 15 minutes
Console Development in 15 minutes
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 

SQL Server 2012 - FileTables

  • 1. SQL Server 2012: File Tables File storage connected to RDBMS
  • 2. • There are lots of files • We need to store them somewhere • We need to query over them • Files have metadata information like dates, size, content type etc. • It needs to be queried as well Why we need it?
  • 3. • Software that have to deal with files • File libraries, archives, storages etc. • Document-centric software • Email systems with attachments • Content Management Systems • Version Control Systems • and so on and so on… Who Needs It?
  • 4. 1. Store files to any File System (or external storage), keep related information in DB Tables, sync both places 2. Store all files and related information in DB Tables Options available before – 1/3
  • 5. 1. Store files to any File System (or external storage), keep related information in DB Tables, sync both places – the only problem here is to keep both places in sync – seems to be the most common scenario Options available before – 2/3
  • 6. 2. Store all files and related information in DB Tables • the files content is stored in BLOBs • huge database size because of content stored within database file Options available before – 3/3
  • 7. SQL Server 2012 brings a new feature: • FileTables MSDN: • “You can store files and documents in special tables in SQL Server called FileTables, but access them from Windows applications as if they were stored in the file system, without making any changes to your client applications” New Option – SQL FileTables
  • 8. Technically FileTables represent both options combined. • but automated by SQL Server 2012 Engine • based on SQL Server 2008/R2 FileStreams Technically FileTables Are
  • 9. • Windows File I/O compatibility: – non-transacted streaming access and in-place updates – A hierarchical namespace of directories and files – Storage of 10 file attributes such as Created Date and Modified Date – Support for both file and directory management Win API • Full-text search over files and metadata • Semantic search over files and metadata FileTables Benefits
  • 10. • Do not support Memory-Mapped Files – easily reproducible using Windows Notepad FileTables Restrictions
  • 13. <machine-name> <sql-instance-level FILESTREAM share> <database-level directory> <FileTable directory> Sample: shirmanovMSSQLSERVERFileTablesDbDocu ments UNC Directory Hierarchy
  • 14. CREATE DATABASE [FileTablesDb] ON PRIMARY (NAME = PrimaryFG, FILENAME = N'c:SqlFileStreamFileTablesDb.mdf'), FILEGROUP FileStreamFG CONTAINS FILESTREAM (NAME = FileStreamFG, FILENAME = N'c:SqlFileStreamFileStream') LOG ON (NAME = FileTablesDbLog, FILENAME = N'c:SqlFileStreamFileTablesDb.ldf') WITH FILESTREAM (NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'FileTablesDb') GO Create FileStream-enabled Database
  • 15. CREATE TABLE Documents AS FileTable WITH ( FileTable_Directory = 'Documents', FileTable_Collate_Filename = database_default ); GO Create a FileTable
  • 16. SELECT * FROM sys.filetables; GO Create a FileTable
  • 17. -- enumerate all FileTables in database SELECT db_name() AS db_name, db_id() AS db_id, SC.[name] AS schema_name, SO.[schema_id], SO.[name] AS object_name, FT.[object_id], FT.[directory_name], FT.[filename_collation_id], FT.[filename_collation_name], FileTableRootPath() + '' + FT.[directory_name] AS unc_path FROM [FileTablesDb].[sys].[filetables] FT LEFT JOIN [sys].[objects] SO ON FT.[object_id] = SO.[object_id] LEFT JOIN [sys].[schemas] SC ON SC.[schema_id] = SO.[schema_id]; Enumerate All FileTables in Database
  • 18. • Copy files to UNC share and show them in database table Demo
  • 20. SELECT SERVERPROPERTY (N'FILESTREAMShareName'); Get SQL Instance-level FILESTREAM Share Name
  • 21. SELECT DB_NAME(D.database_id) AS "database_name", D.database_id, D.non_transacted_access, D.non_transacted_access_desc, D.directory_name FROM sys.database_filestream_options D WHERE directory_name IS NOT NULL; GO Get Database-level Directory Name
  • 22. -- Get path to FileTable at once - uses Current DB SELECT FileTableRootPath() AS 'FileTableRootPath' GO Get Path to FileTable at Once
  • 23. -- Get a List of Open File Handles -- Associated with a FileTable SELECT * FROM sys.dm_filestream_non_transacted_handles; GO Get a List of Open File Handles
  • 24. -- Kill all open handles in a single filetable EXEC sp_kill_filestream_non_transacted_handles @table_name = 'Documents'; GO Kill All Open Handles
  • 25. -- To identify open files and the associated locks SELECT opened_file_name FROM sys.dm_filestream_non_transacted_handles WHERE fcb_id IN ( SELECT request_owner_id FROM sys.dm_tran_locks ); GO Identify Open Files & Associated Locks
  • 26. INSERT INTO dbo.Documents (Name, file_stream) VALUES ('Testfile1.txt', 0x); Insert a file to the Root via T-SQL
  • 27. SELECT @pathstring = path_locator.ToString() from dbo.Documents where name = 'SQLFiles'; SET @newpath = @pathstring + convert(varchar(20), convert(bigint, substring(convert(binary(16), newid()), 1, 6))) + '.' + convert(varchar(20), convert(bigint, substring(convert(binary(16), newid()), 7, 6))) + '.' + convert(varchar(20), convert(bigint, substring( convert(binary(16), newid()), 13, 4))) + '/'; INSERT INTO dbo.Documents (Name, path_locator, file_stream) VALUES ('SQLFilesTest.txt', @newpath, 0x); Insert a file to the folder via T-SQL
  • 28. -- Find duplicate files by name and size SELECT COUNT(*) AS duplicates_number, MAX(D.stream_id) AS stream_id, D.name, D.file_type, D.cached_file_size FROM dbo.Documents D GROUP BY D.name, D.file_type, D.cached_file_size HAVING COUNT(*) > 1; Find Duplicate Files