Control the chunk size used when querying session data in batches. This helps optimize database queries for large datasets by processing session IDs in smaller chunks.
When fetching session data for analytics reports, Alpha Insights processes session IDs in chunks to avoid memory issues and optimize database performance. This filter allows you to customize the chunk size based on your server capabilities and data volume.
File: includes/classes/WPDAI_Data_Warehouse.php
Method: WPDAI_Data_Warehouse::get_session_data_by_ids()
Line: ~6222
| Parameter | Type | Description |
|---|---|---|
| $chunk_size | int | The number of session IDs to process per chunk (default: 100-200 based on session ID length) |
Type: int
Description: Modified chunk size (must be a positive integer)
The plugin automatically determines chunk size based on average session ID length:
add_filter( 'wpd_ai_session_data_chunk_size', 'increase_session_chunk_size' );
function increase_session_chunk_size( $chunk_size ) {
// Increase to 500 for high-performance servers
return 500;
}
add_filter( 'wpd_ai_session_data_chunk_size', 'reduce_session_chunk_size' );
function reduce_session_chunk_size( $chunk_size ) {
// Reduce to 50 for servers with limited memory
return 50;
}
add_filter( 'wpd_ai_session_data_chunk_size', 'dynamic_session_chunk_size' );
function dynamic_session_chunk_size( $chunk_size ) {
// Get server load average (Unix/Linux only)
if ( function_exists( 'sys_getloadavg' ) ) {
$load = sys_getloadavg();
$current_load = $load[0];
// Reduce chunk size if server is under heavy load
if ( $current_load > 2.0 ) {
return max( 50, (int) ( $chunk_size * 0.5 ) );
}
}
return $chunk_size;
}
add_filter( 'wpd_ai_session_data_chunk_size', 'memory_based_chunk_size' );
function memory_based_chunk_size( $chunk_size ) {
// Get available memory
$memory_limit = ini_get( 'memory_limit' );
$memory_limit_bytes = wp_convert_hr_to_bytes( $memory_limit );
$memory_usage = memory_get_usage( true );
$available_memory = $memory_limit_bytes - $memory_usage;
// Adjust chunk size based on available memory
if ( $available_memory < 64 * 1024 * 1024 ) { // Less than 64MB
return 50;
} elseif ( $available_memory < 128 * 1024 * 1024 ) { // Less than 128MB
return 100;
} else {
return 300; // More memory available, use larger chunks
}
}
| Chunk Size | Memory Usage | Query Count | Best For |
|---|---|---|---|
| 50 | Low | High | Shared hosting, low memory |
| 100-200 (default) | Medium | Medium | Most standard setups |
| 300-500 | High | Low | Dedicated servers, high memory |
add_filter( 'wpd_ai_session_data_chunk_size', 'debug_session_chunk_size', 999 );
function debug_session_chunk_size( $chunk_size ) {
error_log( 'Alpha Insights Session Chunk Size: ' . $chunk_size );
error_log( 'Memory Usage: ' . size_format( memory_get_usage( true ) ) );
return $chunk_size;
}
WPDAI_Data_Warehouse - React dashboard data warehouse