Partitioning - when to create new scheme? I have the following partition setup on a table. 



I'm wanting to create a new partition that begins on 2019-01-01. 

Is the the correct way of doing it, and can it be run now so it's ready to go for 2019?

ALTER DATABASE mydatabase ADD FILEGROUP [Year7FileGroup]  
GO
ALTER DATABASE mydatabase
  ADD FILE  
  (NAME = N'data_year7',
  FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL12.SQL2014\MSSQL\DATA\data_year73.ndf',
  SIZE = 5000MB,
  FILEGROWTH = 500MB)
  TO FILEGROUP [Year7FileGroup]
GO
ALTER PARTITION SCHEME psYearlyPartition_Log
    NEXT USED Year7FileGroup;
ALTER PARTITION FUNCTION pfYearlyPartition_Log()
    SPLIT RANGE('20190101');
Firstly, I would encourage you to read Dan Guzman's excellent post on Table Partitioning Best Practices.  It does a great job of explaining why: 


  "One needs a good understanding of how the RANGE LEFT/RIGHT
  specification affects partition setup and management."


Now, on to your question.  

I'm a little puzzled why you're adding a new partition for '2019-01-01', when your latest partition seems to be for '2016-01-01'.  Since you're trying to add a new partition for '2019-01-01', I would've expected to already see partitions for '2017-01-01' and '2018-01-01'.

In any event, when you're planning on using the SPLIT command, the main thing you want to consider is minimizing data movement between existing partitions.  Pre-defining empty partitions 'before' the minimum value you can have and 'after' the maximum value you can have will allow you to minimize data movement when using the SPLIT.  Referencing Dan's post:

The actions performed by a SPLIT of a RANGE LEFT partition function:


For each table/index using the affected partition scheme(s), move
rows from the existing split partition that are less than or equal to
the new boundary into the newly created partition on the left


The actions performed by a SPLIT of a RANGE RIGHT partition function:


For each table/index using the affected partition scheme(s), move
rows from the existing split partition that are greater than or equal
to the new boundary into the newly create partition on the right


It looks like you might be using RANGE RIGHT partition.  As long as you currently do not have any dates that are greater than or equal to '2019-01-01', there should be no data movement and the SPLIT should execute very quickly.  You definitely want to get the '2019-01-01' partition defined before you get too much data in your table with dates greater than or equal to that date. 

The main point I'm trying to stress is to make sure you already have partition boundaries defined well ahead of the data that currently exists on the table.  Many times, you can go ahead and define partitions ranges years in advance of the data, but you should always monitor your partitioned tables to ensure you aren't creeping up on an ending boundary.