The Logical Storage Structures section in the Oracle Concepts Guide has a good explanation of both data blocks and data files (pages 259 - 296). There is quite a bit of good information including illustrations, but here are some excerpts:
data block
Smallest logical unit of data storage in Oracle Database.
Other names for data blocks include Oracle blocks or pages. One data
block corresponds to a specific number of bytes of physical space on
disk.
data file
A physical file on disk that was created by Oracle Database
and contains the data for a database. The data files can be located
either in an operating system file system or Oracle ASM disk group.
I can't point to the cause but I believe the default rows-per-batch for a BULK INSERT operation is "all". Setting a limit in rows could make the operation more digestible: that's why it's an option. (Here and going on, I'm looking at the Transact-SQL "BULK INSERT" documentation, so it could be way off for SSIS.)
It'll have the effect of splitting the operation into multiple batches of X rows, each operating as a separate transaction. If there's an error, the batches that finished will remain committed into the destination table, and the batch that was stopped will rollback. If that's tolerable in what you're doing, i.e. you can re-run it later and catch up, then, try that.
It's not wrong to have a partition function that puts all current inserts into one table partition, but I don't see how it's useful to partition at all with partitions in the same filegroup. And using datetime is poor, and actually kind of broken for datetime and 'YYYY-MM-DD' without explicit CONVERT formula since SQL Server 2008 (SQL may cheerfully treat this as YYYY-DD-MM: not kidding: don't panic, just change it to 'YYYYMMDD', fixed: or CONVERT(datetime, 'YYYY-MM-DDT00:00:00', 126), I think is it). But I think using a proxy for date value (year as int, or year + quarter) to partition on will work better.
Maybe it's a design copied from elsewhere, or duplicated across several datamarts. If this -is- a true datamart, a dump from the data warehouse to give department managers some data to play with, that isn't (by you) being sent on elsewhere, and probably read-only as far as data users are concerned, then, it seems to me that you could remove the partition function -or- change it to explicitly put all new data into the fourth partition no matter what, and no one would care. (Perhaps you should check that no one cares.)
It feels like a design where the plan is to drop the contents of partition 1 some time in the future and create another new partition for more new data, but it doesn't sound like that's happening here. At least it hasn't happened since 2013.
Best Answer
PAGEIOLATCH_*
I am quoting from Paul Randal's blog post:
IO_COMPLETION
Again quoting from a webpage that belongs to sqlskills.com.
This wait type represents a variety of synchronous read and write operations in data files are not related to tables, plus reads from the transaction log.
What do non-data page IOs mean?
Few examples from Paul Randal's article will make it clear what
nod-data
page means.