The difference between In-Lining and SLOB is a very technical discussion. The following discusses the basics and compares and contrasts the different way the Data Provider must send the LOB using these two capabilities and explains why one is more efficient than the other.
Both In-Lining and SLOB enables the data of a LOB to be included in the data buffer that is sent to the Advanced SQL Engine. Only a limited number of LOBs can be included in the buffer. The size of the data buffer is limited by the SQL Engine.
When a request contains data for only one set of parameters, there is no difference in the efficiency between these two capabilities.
The differences between how LOBs are handled can be seen when a batch is being processed. Suppose the batch contains several sets of parameters (called parameter rows) with several small LOBs in each parameter row. The following describes how the provider will use SLOB and In-Lining when processing a batch:
Used when connected to a Teradata Database 15.0 or later release.
The decision to optimize using SLOB is based upon the size of the LOB. The smallest LOB will be SLOB first. Unlike In-Lining, the determination whether a LOB will be SLOB is performed for each parameter row. More than one LOB can be SLOB, and the same LOB in each parameter row does not have to be a SLOB. From row to row a different set of LOBs can be optimized as SLOBs.
This is more efficient than In-Lining because the provider can look at the actual length of the value. In contrast, In-Line optimization uses the maximum size of all the LOBs in the same parameter position.
Used when connected to a Teradata Database 14.0 or 14.10 Release.
The decision to optimize a LOB by In-Lining its data is based upon its size-- the smallest LOBs are In-Lined first. One limitation is that all the LOBs in the same position in each parameter row must all be In-Lined.
Another limitation occurs when the Parameter.Size property was not set for a LOB parameter. Because of the first limitation, the provider will inspect each parameter in every row and determine the maximum length of all the LOB parameter in the same row position. It will then use this size to determine whether all the LOBs in that row position can be In-Lined. This causes a problem when only one LOB is large and the others are small. The Data Provider will use the size of the largest LOB to determine whether the LOBs in the parameter position can be In-Lined.