|
1 | 1 | ---
|
2 |
| -title: "SQL Server I/O fundamentals" |
| 2 | +title: "SQL Server I/O Fundamentals" |
3 | 3 | description: Learn about how storage choice and caching affect SQL Server performance.
|
4 | 4 | author: rwestMSFT
|
5 | 5 | ms.author: randolphwest
|
6 |
| -ms.date: 06/12/2024 |
| 6 | +ms.date: 06/24/2025 |
7 | 7 | ms.service: sql
|
8 | 8 | ms.subservice: supportability
|
9 | 9 | ms.topic: conceptual
|
@@ -62,7 +62,7 @@ Long I/Os often indicate a [!INCLUDE [ssNoVersion](../includes/ssnoversion-md.md
|
62 | 62 | - Multiple long I/O messages appear in the error log during a heavy [!INCLUDE [ssNoVersion](../includes/ssnoversion-md.md)] workload.
|
63 | 63 | - Performance Monitor counters show long disk latencies, long disk queues, or no disk idle time.
|
64 | 64 |
|
65 |
| -Long I/Os can also be caused by a component in the I/O path (for example, a driver, controller, or firmware) continually postponing servicing an old I/O request, in favor of servicing newer requests. This can occur in interconnected environments, such as iSCSI and fiber channel networks (either due to a misconfiguration or path failure). This can be difficult to corroborate with the Performance Monitor tool because most I/Os are being serviced promptly. Long I/O requests can be aggravated by workloads that perform large amounts of sequential I/O, such as backup and restore, table scans, sorting, creating indexes, bulk loads, and zeroing out files. |
| 65 | +Long I/Os can also be caused by a component in the I/O path (for example, a driver, controller, or firmware) continually postponing servicing an old I/O request, in favor of servicing newer requests. This can occur in interconnected environments, such as [iSCSI](#iscsi) and fiber channel networks (either due to a misconfiguration or path failure). This can be difficult to corroborate with the Performance Monitor tool because most I/Os are being serviced promptly. Long I/O requests can be aggravated by workloads that perform large amounts of sequential I/O, such as backup and restore, table scans, sorting, creating indexes, bulk loads, and zeroing out files. |
66 | 66 |
|
67 | 67 | Isolated long I/Os that don't appear related to any of the previous conditions can be caused by a hardware or driver problem. The system event log might contain a related event that helps to diagnose the problem.
|
68 | 68 |
|
@@ -101,7 +101,7 @@ It's a specific and defined set of implementation steps necessary to ensure that
|
101 | 101 |
|
102 | 102 | The `FILE_FLAG_WRITE_THROUGH` option ensures that when a write operation returns successful completion the data is correctly stored in stable storage. This aligns with the Write Ahead Logging (WAL) protocol specification to ensure the data. Many storage devices (NVMe, PCIe, SATA, ATA, SCSI, and IDE-based) contain onboard caches of 512 KB, 1 MB, and larger. Storage caches usually rely on a capacitor and not a battery-backed solution. These caching mechanisms can't guarantee writes across a power cycle or similar failure point. They only guarantee the completion of the sector write operations. As the storage devices continue to grow in size, the caches become larger, and they can expose larger amounts of data during a failure.
|
103 | 103 |
|
104 |
| -For more information on FUA support by Linux distribution and its effect on [!INCLUDE [ssnoversion-md](../includes/ssnoversion-md.md)], see [SQL Server On Linux: Forced Unit Access (FUA) Internals](https://techcommunity.microsoft.com/t5/sql-server-blog/sql-server-on-linux-forced-unit-access-fua-internals/ba-p/3199102). |
| 104 | +For more information on FUA support by Linux distribution and its effect on [!INCLUDE [ssnoversion-md](../includes/ssnoversion-md.md)], see [SQL Server On Linux: Forced Unit Access (FUA) Internals](https://techcommunity.microsoft.com/blog/sqlserver/sql-server-on-linux-forced-unit-access-fua-internals/3199102). |
105 | 105 |
|
106 | 106 | ## Transactional integrity and SQL Server recovery
|
107 | 107 |
|
@@ -158,6 +158,11 @@ SCSI, SAS, and NVMe storage devices:
|
158 | 158 | - Typically have better meantime to failure rates than other implementations.
|
159 | 159 | - Contain sophisticated heuristics to help predict imminent failures.
|
160 | 160 |
|
| 161 | +<a id="iscsi"></a> |
| 162 | + |
| 163 | +> [!NOTE] |
| 164 | +> [!INCLUDE [ssnoversion-md](../includes/ssnoversion-md.md)] is supported on Internet Small Computer System Interface (iSCSI) technology components that meet the requirements of the [Windows Hardware Compatibility Program](/windows-hardware/design/compatibility/whcp-certification-process). Although [!INCLUDE [ssnoversion-md](../includes/ssnoversion-md.md)] doesn't interact directly with iSCSI, it operates seamlessly because Windows presents iSCSI storage as standard drives. This allows [!INCLUDE [ssnoversion-md](../includes/ssnoversion-md.md)] to read from and write to remote block-level storage across IP networks. Since iSCSI depends on networks, you can experience delays or bottlenecks, so you should optimize the server's caching performance and minimize latency. For more information, see [iSCSI Target Server Scalability Limits](/windows-server/storage/iscsi/iscsi-target-server-limits). |
| 165 | +
|
161 | 166 | #### Non-SCSI
|
162 | 167 |
|
163 | 168 | Other drive implementations, such as IDE, ATA, and SATA:
|
@@ -276,5 +281,5 @@ Many PC manufacturers order the drives with the write cache disabled. However, t
|
276 | 281 |
|
277 | 282 | - [Pages and extents architecture guide](pages-and-extents-architecture-guide.md)
|
278 | 283 | - [Memory management architecture guide](memory-management-architecture-guide.md)
|
279 |
| -- [SQL Server On Linux: Forced Unit Access (FUA) Internals](https://techcommunity.microsoft.com/t5/sql-server-blog/sql-server-on-linux-forced-unit-access-fua-internals/ba-p/3199102) |
| 284 | +- [SQL Server On Linux: Forced Unit Access (FUA) Internals](https://techcommunity.microsoft.com/blog/sqlserver/sql-server-on-linux-forced-unit-access-fua-internals/3199102) |
280 | 285 | - [SQL Server I/O Basics, Chapter 2](/previous-versions/sql/sql-server-2005/administrator/cc917726(v=technet.10))
|
0 commit comments