diff --git a/core/PluginsArchiver.php b/core/PluginsArchiver.php
index dca85a7c770c3128f6f5d296ddee51344c709eff..7dcdf3e54f8c0644962cf0586805e97c7e9c3bac 100644
--- a/core/PluginsArchiver.php
+++ b/core/PluginsArchiver.php
@@ -19,6 +19,7 @@ abstract class Piwik_PluginsArchiver
 
     public function __construct(Piwik_ArchiveProcessing $processing)
     {
+        $this->maximumRows = Piwik_Config::getInstance()->General['datatable_archiving_maximum_rows_standard'];
         $this->maximumRows = Piwik_Config::getInstance()->General['datatable_archiving_maximum_rows_standard'];
         $this->processor = $processing;
     }
diff --git a/plugins/Actions/Archiver.php b/plugins/Actions/Archiver.php
index e8a4855463721ff5843808fc51ce6617455adb59..d34fb147dca34da38e1ba637c6d29f490190c568 100644
--- a/plugins/Actions/Archiver.php
+++ b/plugins/Actions/Archiver.php
@@ -16,6 +16,23 @@
  */
 class Piwik_Actions_Archiver extends Piwik_PluginsArchiver
 {
+    const DOWNLOADS_RECORD_NAME = 'Actions_downloads';
+    const OUTLINKS_RECORD_NAME = 'Actions_outlink';
+    const PAGE_TITLES_RECORD_NAME = 'Actions_actions';
+    const SITE_SEARCH_RECORD_NAME = 'Actions_sitesearch';
+    const PAGE_URLS_RECORD_NAME = 'Actions_actions_url';
+
+    const METRIC_PAGEVIEWS_RECORD_NAME = 'Actions_nb_pageviews';
+    const METRIC_UNIQ_PAGEVIEWS_RECORD_NAME = 'Actions_nb_uniq_pageviews';
+    const METRIC_SUM_TIME_RECORD_NAME = 'Actions_sum_time_generation';
+    const METRIC_HITS_TIMED_RECORD_NAME = 'Actions_nb_hits_with_time_generation';
+    const METRIC_DOWNLOADS_RECORD_NAME = 'Actions_nb_downloads';
+    const METRIC_UNIQ_DOWNLOADS_RECORD_NAME = 'Actions_nb_uniq_downloads';
+    const METRIC_OUTLINKS_RECORD_NAME = 'Actions_nb_outlinks';
+    const METRIC_UNIQ_OUTLINKS_RECORD_NAME = 'Actions_nb_uniq_outlinks';
+    const METRIC_SEARCHES_RECORD_NAME = 'Actions_nb_searches';
+    const METRIC_KEYWORDS_RECORD_NAME = 'Actions_nb_keywords';
+
     public static $actionTypes = array(
         Piwik_Tracker_Action::TYPE_ACTION_URL,
         Piwik_Tracker_Action::TYPE_OUTLINK,
@@ -421,11 +438,11 @@ class Piwik_Actions_Archiver extends Piwik_PluginsArchiver
     protected function recordPageUrlsReports()
     {
         $dataTable = $this->getDataTable(Piwik_Tracker_Action::TYPE_ACTION_URL);
-        $this->recordDataTable($dataTable, 'Actions_actions_url');
-        $this->getProcessor()->insertNumericRecord('Actions_nb_pageviews', array_sum($dataTable->getColumn(Piwik_Archive::INDEX_PAGE_NB_HITS)));
-        $this->getProcessor()->insertNumericRecord('Actions_nb_uniq_pageviews', array_sum($dataTable->getColumn(Piwik_Archive::INDEX_NB_VISITS)));
-        $this->getProcessor()->insertNumericRecord('Actions_sum_time_generation', array_sum($dataTable->getColumn(Piwik_Archive::INDEX_PAGE_SUM_TIME_GENERATION)));
-        $this->getProcessor()->insertNumericRecord('Actions_nb_hits_with_time_generation', array_sum($dataTable->getColumn(Piwik_Archive::INDEX_PAGE_NB_HITS_WITH_TIME_GENERATION)));
+        $this->recordDataTable($dataTable, self::PAGE_URLS_RECORD_NAME);
+        $this->getProcessor()->insertNumericRecord(self::METRIC_PAGEVIEWS_RECORD_NAME, array_sum($dataTable->getColumn(Piwik_Archive::INDEX_PAGE_NB_HITS)));
+        $this->getProcessor()->insertNumericRecord(self::METRIC_UNIQ_PAGEVIEWS_RECORD_NAME, array_sum($dataTable->getColumn(Piwik_Archive::INDEX_NB_VISITS)));
+        $this->getProcessor()->insertNumericRecord(self::METRIC_SUM_TIME_RECORD_NAME, array_sum($dataTable->getColumn(Piwik_Archive::INDEX_PAGE_SUM_TIME_GENERATION)));
+        $this->getProcessor()->insertNumericRecord(self::METRIC_HITS_TIMED_RECORD_NAME, array_sum($dataTable->getColumn(Piwik_Archive::INDEX_PAGE_NB_HITS_WITH_TIME_GENERATION)));
     }
 
     /**
@@ -488,35 +505,35 @@ class Piwik_Actions_Archiver extends Piwik_PluginsArchiver
     protected function recordDownloadsReports()
     {
         $dataTable = $this->getDataTable(Piwik_Tracker_Action::TYPE_DOWNLOAD);
-        $this->recordDataTable($dataTable, 'Actions_downloads');
+        $this->recordDataTable($dataTable, self::DOWNLOADS_RECORD_NAME);
 
-        $this->getProcessor()->insertNumericRecord('Actions_nb_downloads', array_sum($dataTable->getColumn(Piwik_Archive::INDEX_PAGE_NB_HITS)));
-        $this->getProcessor()->insertNumericRecord('Actions_nb_uniq_downloads', array_sum($dataTable->getColumn(Piwik_Archive::INDEX_NB_VISITS)));
+        $this->getProcessor()->insertNumericRecord(self::METRIC_DOWNLOADS_RECORD_NAME, array_sum($dataTable->getColumn(Piwik_Archive::INDEX_PAGE_NB_HITS)));
+        $this->getProcessor()->insertNumericRecord(self::METRIC_UNIQ_DOWNLOADS_RECORD_NAME, array_sum($dataTable->getColumn(Piwik_Archive::INDEX_NB_VISITS)));
     }
 
     protected function recordOutlinksReports()
     {
         $dataTable = $this->getDataTable(Piwik_Tracker_Action::TYPE_OUTLINK);
-        $this->recordDataTable($dataTable, 'Actions_outlink');
+        $this->recordDataTable($dataTable, self::OUTLINKS_RECORD_NAME);
 
-        $this->getProcessor()->insertNumericRecord('Actions_nb_outlinks', array_sum($dataTable->getColumn(Piwik_Archive::INDEX_PAGE_NB_HITS)));
-        $this->getProcessor()->insertNumericRecord('Actions_nb_uniq_outlinks', array_sum($dataTable->getColumn(Piwik_Archive::INDEX_NB_VISITS)));
+        $this->getProcessor()->insertNumericRecord(self::METRIC_OUTLINKS_RECORD_NAME, array_sum($dataTable->getColumn(Piwik_Archive::INDEX_PAGE_NB_HITS)));
+        $this->getProcessor()->insertNumericRecord(self::METRIC_UNIQ_OUTLINKS_RECORD_NAME, array_sum($dataTable->getColumn(Piwik_Archive::INDEX_NB_VISITS)));
     }
 
     protected function recordPageTitlesReports()
     {
         $dataTable = $this->getDataTable(Piwik_Tracker_Action::TYPE_ACTION_NAME);
-        $this->recordDataTable($dataTable, 'Actions_actions');
+        $this->recordDataTable($dataTable, self::PAGE_TITLES_RECORD_NAME);
     }
 
     protected function recordSiteSearchReports()
     {
         $dataTable = $this->getDataTable(Piwik_Tracker_Action::TYPE_SITE_SEARCH);
         $this->deleteUnusedColumnsFromKeywordsDataTable($dataTable);
-        $this->recordDataTable($dataTable, 'Actions_sitesearch');
+        $this->recordDataTable($dataTable, self::SITE_SEARCH_RECORD_NAME);
 
-        $this->getProcessor()->insertNumericRecord('Actions_nb_searches', array_sum($dataTable->getColumn(Piwik_Archive::INDEX_NB_VISITS)));
-        $this->getProcessor()->insertNumericRecord('Actions_nb_keywords', $dataTable->getRowsCount());
+        $this->getProcessor()->insertNumericRecord(self::METRIC_SEARCHES_RECORD_NAME, array_sum($dataTable->getColumn(Piwik_Archive::INDEX_NB_VISITS)));
+        $this->getProcessor()->insertNumericRecord(self::METRIC_KEYWORDS_RECORD_NAME, $dataTable->getRowsCount());
     }
 
     protected function deleteUnusedColumnsFromKeywordsDataTable($dataTable)
@@ -538,8 +555,8 @@ class Piwik_Actions_Archiver extends Piwik_PluginsArchiver
     {
         Piwik_Actions_ArchivingHelper::reloadConfig();
         $dataTableToSum = array(
-            'Actions_actions',
-            'Actions_actions_url',
+            self::PAGE_TITLES_RECORD_NAME,
+            self::PAGE_URLS_RECORD_NAME,
         );
         $this->getProcessor()->archiveDataTable($dataTableToSum,
             self::$invalidSummedColumnNameToRenamedNameFromPeriodArchive,
@@ -549,9 +566,9 @@ class Piwik_Actions_Archiver extends Piwik_PluginsArchiver
             self::$actionColumnAggregationOperations);
 
         $dataTableToSum = array(
-            'Actions_downloads',
-            'Actions_outlink',
-            'Actions_sitesearch',
+            self::DOWNLOADS_RECORD_NAME,
+            self::OUTLINKS_RECORD_NAME,
+            self::SITE_SEARCH_RECORD_NAME,
         );
         $nameToCount = $this->getProcessor()->archiveDataTable($dataTableToSum,
             self::$invalidSummedColumnNameToRenamedNameFromPeriodArchive,
@@ -560,18 +577,18 @@ class Piwik_Actions_Archiver extends Piwik_PluginsArchiver
             Piwik_Actions_ArchivingHelper::$columnToSortByBeforeTruncation);
 
         $this->getProcessor()->archiveNumericValuesSum(array(
-                                                            'Actions_nb_pageviews',
-                                                            'Actions_nb_uniq_pageviews',
-                                                            'Actions_nb_downloads',
-                                                            'Actions_nb_uniq_downloads',
-                                                            'Actions_nb_outlinks',
-                                                            'Actions_nb_uniq_outlinks',
-                                                            'Actions_nb_searches',
-                                                            'Actions_sum_time_generation',
-                                                            'Actions_nb_hits_with_time_generation',
+                                                            self::METRIC_PAGEVIEWS_RECORD_NAME,
+                                                            self::METRIC_UNIQ_PAGEVIEWS_RECORD_NAME,
+                                                            self::METRIC_DOWNLOADS_RECORD_NAME,
+                                                            self::METRIC_UNIQ_DOWNLOADS_RECORD_NAME,
+                                                            self::METRIC_OUTLINKS_RECORD_NAME,
+                                                            self::METRIC_UNIQ_OUTLINKS_RECORD_NAME,
+                                                            self::METRIC_SEARCHES_RECORD_NAME,
+                                                            self::METRIC_SUM_TIME_RECORD_NAME,
+                                                            self::METRIC_HITS_TIMED_RECORD_NAME,
                                                        ));
 
         // Unique Keywords can't be summed, instead we take the RowsCount() of the keyword table
-        $this->getProcessor()->insertNumericRecord('Actions_nb_keywords', $nameToCount['Actions_sitesearch']['level0']);
+        $this->getProcessor()->insertNumericRecord(self::METRIC_KEYWORDS_RECORD_NAME, $nameToCount[self::SITE_SEARCH_RECORD_NAME]['level0']);
     }
 }
diff --git a/plugins/CustomVariables/API.php b/plugins/CustomVariables/API.php
index abdbfb80f10496daaf897e450ee6fa757f2d2bea..96d05c4c30825391771efc3d27b56dc42ff77090 100644
--- a/plugins/CustomVariables/API.php
+++ b/plugins/CustomVariables/API.php
@@ -41,7 +41,7 @@ class Piwik_CustomVariables_API
      */
     protected function getDataTable($idSite, $period, $date, $segment, $expanded, $idSubtable)
     {
-        $dataTable = Piwik_Archive::getDataTableFromArchive('CustomVariables_valueByName', $idSite, $period, $date, $segment, $expanded, $idSubtable);
+        $dataTable = Piwik_Archive::getDataTableFromArchive(Piwik_CustomVariables_Archiver::CUSTOM_VARIABLE_RECORD_NAME, $idSite, $period, $date, $segment, $expanded, $idSubtable);
         $dataTable->filter('Sort', array(Piwik_Archive::INDEX_NB_ACTIONS, 'desc', $naturalSort = false, $expanded));
         $dataTable->queueFilter('ReplaceColumnNames');
         $dataTable->queueFilter('ColumnDelete', 'nb_uniq_visitors');
diff --git a/plugins/CustomVariables/Archiver.php b/plugins/CustomVariables/Archiver.php
index 896b5335bc5184e1336b96934d53548223fd6b24..f5df35ba3892268c3f3b9cdc449559aed97371a9 100644
--- a/plugins/CustomVariables/Archiver.php
+++ b/plugins/CustomVariables/Archiver.php
@@ -12,7 +12,7 @@
 class Piwik_CustomVariables_Archiver extends Piwik_PluginsArchiver
 {
     const LABEL_CUSTOM_VALUE_NOT_DEFINED = "Value not defined";
-    const BLOB_NAME = 'CustomVariables_valueByName';
+    const CUSTOM_VARIABLE_RECORD_NAME = 'CustomVariables_valueByName';
     protected $metricsByKey = array();
     protected $metricsByKeyAndValue = array();
     protected $maximumRowsInDataTableLevelZero;
@@ -42,7 +42,7 @@ class Piwik_CustomVariables_Archiver extends Piwik_PluginsArchiver
             $columnToSort = Piwik_Archive::INDEX_NB_VISITS
         );
 
-        $this->getProcessor()->insertBlobRecord(self::BLOB_NAME, $blob);
+        $this->getProcessor()->insertBlobRecord(self::CUSTOM_VARIABLE_RECORD_NAME, $blob);
     }
 
     protected function aggregateCustomVariable($slot)
@@ -218,7 +218,7 @@ class Piwik_CustomVariables_Archiver extends Piwik_PluginsArchiver
     public function archivePeriod()
     {
         $nameToCount = $this->getProcessor()->archiveDataTable(
-            self::BLOB_NAME, null, $this->maximumRowsInDataTableLevelZero, $this->maximumRowsInSubDataTable,
+            self::CUSTOM_VARIABLE_RECORD_NAME, null, $this->maximumRowsInDataTableLevelZero, $this->maximumRowsInSubDataTable,
             $columnToSort = Piwik_Archive::INDEX_NB_VISITS);
     }
 }
\ No newline at end of file
diff --git a/plugins/DBStats/MySQLMetadataProvider.php b/plugins/DBStats/MySQLMetadataProvider.php
index 6240a24b19e0635cebc0aacc438c926942b0c896..be487346cbeb732c7a785fba66cf5adb8db8fedb 100755
--- a/plugins/DBStats/MySQLMetadataProvider.php
+++ b/plugins/DBStats/MySQLMetadataProvider.php
@@ -243,7 +243,6 @@ class Piwik_DBStats_MySQLMetadataProvider
                 array($cols, 'estimated_size', $getEstimatedSize, array($status)));
 
             $dataTable->addDataTable($table);
-            destroy($table);
         }
         return $dataTable;
     }
diff --git a/plugins/DevicesDetection/Archiver.php b/plugins/DevicesDetection/Archiver.php
index 1fdbe6f8cceb6c91a5bcb4fbb9a1499187f0f523..5ff05d3f3a6812d2b34d13fae1c6cc859db26746 100644
--- a/plugins/DevicesDetection/Archiver.php
+++ b/plugins/DevicesDetection/Archiver.php
@@ -11,6 +11,14 @@
 
 class Piwik_DevicesDetection_Archiver extends Piwik_PluginsArchiver
 {
+    const TYPE_RECORD_NAME = 'DevicesDetection_types';
+    const BRAND_RECORD_NAME = 'DevicesDetection_brands';
+    const MODEL_RECORD_NAME = 'DevicesDetection_models';
+    const OS_RECORD_NAME = 'DevicesDetection_os';
+    const OS_VERSION_RECORD_NAME = 'DevicesDetection_osVersions';
+    const BROWSER_RECORD_NAME = 'DevicesDetection_browsers';
+    const BROWSER_VERSION_RECORD_NAME = 'DevicesDetection_browserVersions';
+
     public function __construct($processor)
     {
         parent::__construct($processor);
@@ -30,9 +38,8 @@ class Piwik_DevicesDetection_Archiver extends Piwik_PluginsArchiver
 
     private function archiveDayDeviceTypes()
     {
-        $recordName = 'DevicesDetection_types';
         $labelSQL = "log_visit.config_device_type";
-        $this->aggregateByLabel( $labelSQL, $recordName);
+        $this->aggregateByLabel( $labelSQL, self::TYPE_RECORD_NAME);
     }
 
     private function aggregateByLabel( $labelSQL, $recordName)
@@ -45,57 +52,45 @@ class Piwik_DevicesDetection_Archiver extends Piwik_PluginsArchiver
 
     private function archiveDayDeviceBrands()
     {
-        $recordName = 'DevicesDetection_brands';
-        $labelSQL = "log_visit.config_device_brand";
-        $this->aggregateByLabel( $labelSQL, $recordName);
+        $this->aggregateByLabel( "log_visit.config_device_brand", self::BRAND_RECORD_NAME);
     }
 
     private function archiveDayDeviceModels()
     {
-        $recordName = 'DevicesDetection_models';
-        $labelSQL = "log_visit.config_device_model";
-        $this->aggregateByLabel( $labelSQL, $recordName);
+        $this->aggregateByLabel( "log_visit.config_device_model", self::MODEL_RECORD_NAME);
     }
 
     private function archiveDayOs()
     {
-        $recordName = 'DevicesDetection_os';
-        $labelSQL = "log_visit.config_os";
-        $this->aggregateByLabel( $labelSQL, $recordName);
+        $this->aggregateByLabel( "log_visit.config_os", self::OS_RECORD_NAME);
     }
 
     private function archiveDayOsVersions()
     {
-        $recordName = 'DevicesDetection_osVersions';
-        $labelSQL = "CONCAT(log_visit.config_os, ';', log_visit.config_os_version)";
-        $this->aggregateByLabel( $labelSQL, $recordName);
+        $this->aggregateByLabel( "CONCAT(log_visit.config_os, ';', log_visit.config_os_version)", self::OS_VERSION_RECORD_NAME);
     }
 
     private function archiveDayBrowserFamilies()
     {
-        $recordName = 'DevicesDetection_browsers';
-        $labelSQL = "log_visit.config_browser_name";
-        $this->aggregateByLabel( $labelSQL, $recordName);
+        $this->aggregateByLabel( "log_visit.config_browser_name", self::BROWSER_RECORD_NAME);
     }
 
     private function archiveDayBrowsersVersions()
     {
-        $recordName = 'DevicesDetection_browserVersions';
-        $labelSQL = "CONCAT(log_visit.config_browser_name, ';', log_visit.config_browser_version)";
-        $this->aggregateByLabel( $labelSQL, $recordName);
+        $this->aggregateByLabel( "CONCAT(log_visit.config_browser_name, ';', log_visit.config_browser_version)", self::BROWSER_VERSION_RECORD_NAME);
     }
 
     public function archivePeriod()
     {
         $maximumRowsInSubDataTable = $this->maximumRowsInDataTable;
         $dataTablesToSum = array(
-            'DevicesDetection_types',
-            'DevicesDetection_brands',
-            'DevicesDetection_models',
-            'DevicesDetection_os',
-            'DevicesDetection_osVersions',
-            'DevicesDetection_browsers',
-            'DevicesDetection_browserVersions'
+            self::TYPE_RECORD_NAME,
+            self::BRAND_RECORD_NAME,
+            self::MODEL_RECORD_NAME,
+            self::OS_RECORD_NAME,
+            self::OS_VERSION_RECORD_NAME,
+            self::BROWSER_RECORD_NAME,
+            self::BROWSER_VERSION_RECORD_NAME
         );
         foreach ($dataTablesToSum as $dt) {
             $this->getProcessor()->archiveDataTable(
diff --git a/plugins/Goals/Archiver.php b/plugins/Goals/Archiver.php
index 7effc4e4f78d403867677284a91b85890f8b983d..403e320fa35ff56dc2f8f368f85f10f204058b86 100644
--- a/plugins/Goals/Archiver.php
+++ b/plugins/Goals/Archiver.php
@@ -13,6 +13,9 @@ class Piwik_Goals_Archiver extends Piwik_PluginsArchiver
 {
     const VISITS_UNTIL_RECORD_NAME = 'visits_until_conv';
     const DAYS_UNTIL_CONV_RECORD_NAME = 'days_until_conv';
+    const ITEMS_SKU_RECORD_NAME = 'Goals_ItemsSku';
+    const ITEMS_NAME_RECORD_NAME = 'Goals_ItemsName';
+    const ITEMS_CATEGORY_RECORD_NAME = 'Goals_ItemsCategory';
     /**
      * This array stores the ranges to use when displaying the 'visits to conversion' report
      */
@@ -52,9 +55,9 @@ class Piwik_Goals_Archiver extends Piwik_PluginsArchiver
     );
 
     protected $dimensions = array(
-        'idaction_sku'      => 'Goals_ItemsSku',
-        'idaction_name'     => 'Goals_ItemsName',
-        'idaction_category' => 'Goals_ItemsCategory'
+        'idaction_sku'      => self::ITEMS_SKU_RECORD_NAME,
+        'idaction_name'     => self::ITEMS_NAME_RECORD_NAME,
+        'idaction_category' => self::ITEMS_CATEGORY_RECORD_NAME
     );
 
     public function archiveDay()
@@ -65,16 +68,17 @@ class Piwik_Goals_Archiver extends Piwik_PluginsArchiver
 
     function archiveGeneralGoalMetrics()
     {
+        $selectAsVisitCount = 'vcv';
+        $selectAsDaysSince = 'vdsf';
         // extra aggregate selects for the visits to conversion report
         $visitToConvExtraCols = Piwik_ArchiveProcessing_Day::buildReduceByRangeSelect(
-            'visitor_count_visits', self::$visitCountRanges, 'log_conversion', 'vcv');
+        'visitor_count_visits', self::$visitCountRanges, 'log_conversion', $selectAsVisitCount);
 
         // extra aggregate selects for the days to conversion report
         $daysToConvExtraCols = Piwik_ArchiveProcessing_Day::buildReduceByRangeSelect(
-            'visitor_days_since_first', self::$daysToConvRanges, 'log_conversion', 'vdsf');
+            'visitor_days_since_first', self::$daysToConvRanges, 'log_conversion', $selectAsDaysSince);
 
-        $query = $this->getProcessor()->queryConversionsByDimension(
-            array(), '', array_merge($visitToConvExtraCols, $daysToConvExtraCols));
+        $query = $this->getProcessor()->queryConversionsByDimension(array(), '', array_merge($visitToConvExtraCols, $daysToConvExtraCols));
 
         if ($query === false) {
             return;
@@ -104,11 +108,11 @@ class Piwik_Goals_Archiver extends Piwik_PluginsArchiver
             }
 
             // map the goal + visit number of a visitor with the # of conversions that happened on that visit
-            $table = $this->getProcessor()->getSimpleDataTableFromRow($row, Piwik_Archive::INDEX_NB_CONVERSIONS, 'vcv');
+            $table = $this->getProcessor()->getSimpleDataTableFromRow($row, Piwik_Archive::INDEX_NB_CONVERSIONS, $selectAsVisitCount);
             $visitsToConvReport[$idgoal]->addDataTable($table);
 
             // map the goal + day number of a visit with the # of conversion that happened on that day
-            $table = $this->getProcessor()->getSimpleDataTableFromRow($row, Piwik_Archive::INDEX_NB_CONVERSIONS, 'vdsf');
+            $table = $this->getProcessor()->getSimpleDataTableFromRow($row, Piwik_Archive::INDEX_NB_CONVERSIONS, $selectAsDaysSince);
             $daysToConvReport[$idgoal]->addDataTable($table);
         }
 
diff --git a/plugins/Provider/API.php b/plugins/Provider/API.php
index 603a8dfc94324fb06842bdf950c042fc5d70085e..851b1b74f2eedf37ace2ec50bcd983002ffd8d77 100644
--- a/plugins/Provider/API.php
+++ b/plugins/Provider/API.php
@@ -35,7 +35,7 @@ class Piwik_Provider_API
     {
         Piwik::checkUserHasViewAccess($idSite);
         $archive = Piwik_Archive::build($idSite, $period, $date, $segment);
-        $dataTable = $archive->getDataTable('Provider_hostnameExt');
+        $dataTable = $archive->getDataTable(Piwik_Provider_Archiver::PROVIDER_RECORD_NAME);
         $dataTable->filter('Sort', array(Piwik_Archive::INDEX_NB_VISITS));
         $dataTable->queueFilter('ColumnCallbackAddMetadata', array('label', 'url', 'Piwik_getHostnameUrl'));
         $dataTable->queueFilter('ColumnCallbackReplace', array('label', 'Piwik_Provider_getPrettyProviderName'));
diff --git a/plugins/Provider/Archiver.php b/plugins/Provider/Archiver.php
index a82ff846ce089fa9be80609fe87fa5fd51d375de..3cc703a0e286c498522a8fb744c7a517aa98de53 100644
--- a/plugins/Provider/Archiver.php
+++ b/plugins/Provider/Archiver.php
@@ -10,21 +10,25 @@
  */
 class Piwik_Provider_Archiver extends Piwik_PluginsArchiver
 {
+    const PROVIDER_RECORD_NAME = 'Provider_hostnameExt';
+    protected $maximumRows;
+
+    public function __construct($processor)
+    {
+        parent::__construct($processor);
+        $this->maximumRows = Piwik_Config::getInstance()->General['datatable_archiving_maximum_rows_standard'];
+    }
+
     public function archiveDay()
     {
-        $recordName = 'Provider_hostnameExt';
         $labelSQL = "log_visit.location_provider";
         $metricsByProvider = $this->getProcessor()->getMetricsForLabel($labelSQL);
         $tableProvider = $this->getProcessor()->getDataTableFromArray($metricsByProvider);
-        $columnToSortByBeforeTruncation = Piwik_Archive::INDEX_NB_VISITS;
-        $maximumRowsInDataTable = Piwik_Config::getInstance()->General['datatable_archiving_maximum_rows_standard'];
-        $this->getProcessor()->insertBlobRecord($recordName, $tableProvider->getSerialized($maximumRowsInDataTable, null, $columnToSortByBeforeTruncation));
+        $this->getProcessor()->insertBlobRecord(self::PROVIDER_RECORD_NAME, $tableProvider->getSerialized($this->maximumRows, null, Piwik_Archive::INDEX_NB_VISITS));
     }
 
     public function archivePeriod()
     {
-        $maximumRowsInDataTable = Piwik_Config::getInstance()->General['datatable_archiving_maximum_rows_standard'];
-        $dataTableToSum = array('Provider_hostnameExt');
-        $this->getProcessor()->archiveDataTable($dataTableToSum, null, $maximumRowsInDataTable);
+        $this->getProcessor()->archiveDataTable(array(self::PROVIDER_RECORD_NAME), null, $this->maximumRows);
     }
 }
\ No newline at end of file
diff --git a/plugins/Referers/API.php b/plugins/Referers/API.php
index 327fa59c2cb936e54bb109f65ec256609c28a5a3..abec869e5647a67432aa79cde2e4ed75b022cd42 100644
--- a/plugins/Referers/API.php
+++ b/plugins/Referers/API.php
@@ -88,7 +88,7 @@ class Piwik_Referers_API
         }
 
         // get visits by referrer type
-        $dataTable = $this->getDataTable('Referers_type', $idSite, $period, $date, $segment);
+        $dataTable = $this->getDataTable(Piwik_Referers_Archiver::REFERER_TYPE_RECORD_NAME, $idSite, $period, $date, $segment);
 
         if ($typeReferer !== false) // filter for a specific referrer type
         {
@@ -112,8 +112,7 @@ class Piwik_Referers_API
      */
     public function getAll($idSite, $period, $date, $segment = false)
     {
-        $dataTable = $this->getRefererType($idSite, $period, $date, $segment, $typeReferer = false,
-            $idSubtable = false, $expanded = true);
+        $dataTable = $this->getRefererType($idSite, $period, $date, $segment, $typeReferer = false, $idSubtable = false, $expanded = true);
 
         if ($dataTable instanceof Piwik_DataTable_Array) {
             throw new Exception("Referrers.getAll with multiple sites or dates is not supported (yet).");
@@ -121,7 +120,6 @@ class Piwik_Referers_API
 
         $dataTable = $dataTable->mergeSubtables($labelColumn = 'referrer_type', $useMetadataColumn = true);
 
-        // presentation filters
         $dataTable->filter('Sort', array(Piwik_Archive::INDEX_NB_VISITS, 'desc'));
         $dataTable->queueFilter('ReplaceColumnNames');
         $dataTable->queueFilter('ReplaceSummaryRowLabel');
@@ -131,7 +129,7 @@ class Piwik_Referers_API
 
     public function getKeywords($idSite, $period, $date, $segment = false, $expanded = false)
     {
-        $dataTable = $this->getDataTable('Referers_searchEngineByKeyword', $idSite, $period, $date, $segment, $expanded);
+        $dataTable = $this->getDataTable(Piwik_Referers_Archiver::SEARCH_ENGINE_BY_KEYWORD_RECORD_NAME, $idSite, $period, $date, $segment, $expanded);
         $dataTable = $this->handleKeywordNotDefined($dataTable);
         return $dataTable;
     }
@@ -214,7 +212,7 @@ class Piwik_Referers_API
 
     public function getSearchEnginesFromKeywordId($idSite, $period, $date, $idSubtable, $segment = false)
     {
-        $dataTable = $this->getDataTable('Referers_searchEngineByKeyword', $idSite, $period, $date, $segment, $expanded = false, $idSubtable);
+        $dataTable = $this->getDataTable(Piwik_Referers_Archiver::SEARCH_ENGINE_BY_KEYWORD_RECORD_NAME, $idSite, $period, $date, $segment, $expanded = false, $idSubtable);
         $dataTable->queueFilter('ColumnCallbackAddMetadata', array('label', 'url', 'Piwik_getSearchEngineUrlFromName'));
         $dataTable->queueFilter('MetadataCallbackAddMetadata', array('url', 'logo', 'Piwik_getSearchEngineLogoFromUrl'));
 
@@ -230,7 +228,7 @@ class Piwik_Referers_API
 
     public function getSearchEngines($idSite, $period, $date, $segment = false, $expanded = false)
     {
-        $dataTable = $this->getDataTable('Referers_keywordBySearchEngine', $idSite, $period, $date, $segment, $expanded);
+        $dataTable = $this->getDataTable(Piwik_Referers_Archiver::KEYWORDS_BY_SEARCH_ENGINE_RECORD_NAME, $idSite, $period, $date, $segment, $expanded);
         $dataTable->queueFilter('ColumnCallbackAddMetadata', array('label', 'url', 'Piwik_getSearchEngineUrlFromName'));
         $dataTable->queueFilter('MetadataCallbackAddMetadata', array('url', 'logo', 'Piwik_getSearchEngineLogoFromUrl'));
         return $dataTable;
@@ -238,7 +236,7 @@ class Piwik_Referers_API
 
     public function getKeywordsFromSearchEngineId($idSite, $period, $date, $idSubtable, $segment = false)
     {
-        $dataTable = $this->getDataTable('Referers_keywordBySearchEngine', $idSite, $period, $date, $segment, $expanded = false, $idSubtable);
+        $dataTable = $this->getDataTable(Piwik_Referers_Archiver::KEYWORDS_BY_SEARCH_ENGINE_RECORD_NAME, $idSite, $period, $date, $segment, $expanded = false, $idSubtable);
 
         // get the search engine and create the URL to the search result page
         $searchEngines = $this->getSearchEngines($idSite, $period, $date, $segment);
@@ -269,25 +267,25 @@ class Piwik_Referers_API
 
     public function getCampaigns($idSite, $period, $date, $segment = false, $expanded = false)
     {
-        $dataTable = $this->getDataTable('Referers_keywordByCampaign', $idSite, $period, $date, $segment, $expanded);
+        $dataTable = $this->getDataTable(Piwik_Referers_Archiver::KEYWORD_BY_CAMPAIGN_RECORD_NAME, $idSite, $period, $date, $segment, $expanded);
         return $dataTable;
     }
 
     public function getKeywordsFromCampaignId($idSite, $period, $date, $idSubtable, $segment = false)
     {
-        $dataTable = $this->getDataTable('Referers_keywordByCampaign', $idSite, $period, $date, $segment, $expanded = false, $idSubtable);
+        $dataTable = $this->getDataTable(Piwik_Referers_Archiver::KEYWORD_BY_CAMPAIGN_RECORD_NAME, $idSite, $period, $date, $segment, $expanded = false, $idSubtable);
         return $dataTable;
     }
 
     public function getWebsites($idSite, $period, $date, $segment = false, $expanded = false)
     {
-        $dataTable = $this->getDataTable('Referers_urlByWebsite', $idSite, $period, $date, $segment, $expanded);
+        $dataTable = $this->getDataTable(Piwik_Referers_Archiver::URL_BY_WEBSITE_RECORD_NAME, $idSite, $period, $date, $segment, $expanded);
         return $dataTable;
     }
 
     public function getUrlsFromWebsiteId($idSite, $period, $date, $idSubtable, $segment = false)
     {
-        $dataTable = $this->getDataTable('Referers_urlByWebsite', $idSite, $period, $date, $segment, $expanded = false, $idSubtable);
+        $dataTable = $this->getDataTable(Piwik_Referers_Archiver::URL_BY_WEBSITE_RECORD_NAME, $idSite, $period, $date, $segment, $expanded = false, $idSubtable);
         // the htmlspecialchars_decode call is for BC for before 1.1
         // as the Referer URL was previously encoded in the log tables, but is now recorded raw
         $dataTable->queueFilter('ColumnCallbackAddMetadata', array('label', 'url', create_function('$label', 'return htmlspecialchars_decode($label);')));
@@ -310,7 +308,7 @@ class Piwik_Referers_API
     {
         require PIWIK_INCLUDE_PATH . '/core/DataFiles/Socials.php';
 
-        $dataTable = $this->getDataTable('Referers_urlByWebsite', $idSite, $period, $date, $segment, $expanded);
+        $dataTable = $this->getDataTable( Piwik_Referers_Archiver::URL_BY_WEBSITE_RECORD_NAME, $idSite, $period, $date, $segment, $expanded);
 
         $dataTable->filter('ColumnCallbackDeleteRow', array('label', 'Piwik_Referrers_isSocialUrl'));
 
@@ -343,8 +341,7 @@ class Piwik_Referers_API
     {
         require PIWIK_INCLUDE_PATH . '/core/DataFiles/Socials.php';
 
-        $dataTable = $this->getDataTable(
-            'Referers_urlByWebsite', $idSite, $period, $date, $segment, $expanded = true);
+        $dataTable = $this->getDataTable( Piwik_Referers_Archiver::URL_BY_WEBSITE_RECORD_NAME, $idSite, $period, $date, $segment, $expanded = true);
 
         // get the social network domain referred to by $idSubtable
         $social = false;
@@ -378,27 +375,27 @@ class Piwik_Referers_API
 
     public function getNumberOfDistinctSearchEngines($idSite, $period, $date, $segment = false)
     {
-        return $this->getNumeric('Referers_distinctSearchEngines', $idSite, $period, $date, $segment);
+        return $this->getNumeric(Piwik_Referers_Archiver::METRIC_DISTINCT_SEARCH_ENGINE_RECORD_NAME, $idSite, $period, $date, $segment);
     }
 
     public function getNumberOfDistinctKeywords($idSite, $period, $date, $segment = false)
     {
-        return $this->getNumeric('Referers_distinctKeywords', $idSite, $period, $date, $segment);
+        return $this->getNumeric(Piwik_Referers_Archiver::METRIC_DISTINCT_KEYWORD_RECORD_NAME, $idSite, $period, $date, $segment);
     }
 
     public function getNumberOfDistinctCampaigns($idSite, $period, $date, $segment = false)
     {
-        return $this->getNumeric('Referers_distinctCampaigns', $idSite, $period, $date, $segment);
+        return $this->getNumeric(Piwik_Referers_Archiver::METRIC_DISTINCT_CAMPAIGN_RECORD_NAME, $idSite, $period, $date, $segment);
     }
 
     public function getNumberOfDistinctWebsites($idSite, $period, $date, $segment = false)
     {
-        return $this->getNumeric('Referers_distinctWebsites', $idSite, $period, $date, $segment);
+        return $this->getNumeric(Piwik_Referers_Archiver::METRIC_DISTINCT_WEBSITE_RECORD_NAME, $idSite, $period, $date, $segment);
     }
 
     public function getNumberOfDistinctWebsitesUrls($idSite, $period, $date, $segment = false)
     {
-        return $this->getNumeric('Referers_distinctWebsitesUrls', $idSite, $period, $date, $segment);
+        return $this->getNumeric(Piwik_Referers_Archiver::METRIC_DISTINCT_URLS_RECORD_NAME, $idSite, $period, $date, $segment);
     }
 
     private function getNumeric($name, $idSite, $period, $date, $segment)
diff --git a/plugins/Referers/Archiver.php b/plugins/Referers/Archiver.php
index f540d1c2a22f9031dcd88a0dc7f6aebaad787a2e..58907702ad94f70e3f19dd01334844724fb55803 100644
--- a/plugins/Referers/Archiver.php
+++ b/plugins/Referers/Archiver.php
@@ -11,6 +11,18 @@
 
 class Piwik_Referers_Archiver extends Piwik_PluginsArchiver
 {
+    const KEYWORDS_BY_SEARCH_ENGINE_RECORD_NAME = 'Referers_keywordBySearchEngine';
+    const SEARCH_ENGINE_BY_KEYWORD_RECORD_NAME = 'Referers_searchEngineByKeyword';
+    const KEYWORD_BY_CAMPAIGN_RECORD_NAME = 'Referers_keywordByCampaign';
+    const URL_BY_WEBSITE_RECORD_NAME = 'Referers_urlByWebsite';
+    const REFERER_TYPE_RECORD_NAME = 'Referers_type';
+
+    const METRIC_DISTINCT_SEARCH_ENGINE_RECORD_NAME = 'Referers_distinctSearchEngines';
+    const METRIC_DISTINCT_KEYWORD_RECORD_NAME = 'Referers_distinctKeywords';
+    const METRIC_DISTINCT_CAMPAIGN_RECORD_NAME = 'Referers_distinctCampaigns';
+    const METRIC_DISTINCT_WEBSITE_RECORD_NAME = 'Referers_distinctWebsites';
+    const METRIC_DISTINCT_URLS_RECORD_NAME = 'Referers_distinctWebsitesUrls';
+
     protected $columnToSortByBeforeTruncation;
     protected $maximumRowsInDataTableLevelZero;
     protected $maximumRowsInSubDataTable;
@@ -258,17 +270,32 @@ class Piwik_Referers_Archiver extends Piwik_PluginsArchiver
         $this->recordDayBlobs();
     }
 
+    protected function recordDayNumeric()
+    {
+        $numericRecords = array(
+            self::METRIC_DISTINCT_SEARCH_ENGINE_RECORD_NAME => count($this->metricsBySearchEngineAndKeyword),
+            self::METRIC_DISTINCT_KEYWORD_RECORD_NAME       => count($this->metricsByKeywordAndSearchEngine),
+            self::METRIC_DISTINCT_CAMPAIGN_RECORD_NAME      => count($this->metricsByCampaign),
+            self::METRIC_DISTINCT_WEBSITE_RECORD_NAME       => count($this->metricsByWebsite),
+            self::METRIC_DISTINCT_URLS_RECORD_NAME          => count($this->distinctUrls),
+        );
+
+        foreach ($numericRecords as $name => $value) {
+            $this->getProcessor()->insertNumericRecord($name, $value);
+        }
+    }
+
     protected function recordDayBlobs()
     {
         $table = new Piwik_DataTable();
         $table->addRowsFromArrayWithIndexLabel($this->metricsByType);
-        $this->getProcessor()->insertBlobRecord('Referers_type', $table->getSerialized());
+        $this->getProcessor()->insertBlobRecord(self::REFERER_TYPE_RECORD_NAME, $table->getSerialized());
 
         $blobRecords = array(
-            'Referers_keywordBySearchEngine' => $this->getProcessor()->getDataTableWithSubtablesFromArraysIndexedByLabel($this->metricsBySearchEngineAndKeyword, $this->metricsBySearchEngine),
-            'Referers_searchEngineByKeyword' => $this->getProcessor()->getDataTableWithSubtablesFromArraysIndexedByLabel($this->metricsByKeywordAndSearchEngine, $this->metricsByKeyword),
-            'Referers_keywordByCampaign'     => $this->getProcessor()->getDataTableWithSubtablesFromArraysIndexedByLabel($this->metricsByCampaignAndKeyword, $this->metricsByCampaign),
-            'Referers_urlByWebsite'          => $this->getProcessor()->getDataTableWithSubtablesFromArraysIndexedByLabel($this->metricsByWebsiteAndUrl, $this->metricsByWebsite),
+            self::KEYWORDS_BY_SEARCH_ENGINE_RECORD_NAME => $this->getProcessor()->getDataTableWithSubtablesFromArraysIndexedByLabel($this->metricsBySearchEngineAndKeyword, $this->metricsBySearchEngine),
+            self::SEARCH_ENGINE_BY_KEYWORD_RECORD_NAME  => $this->getProcessor()->getDataTableWithSubtablesFromArraysIndexedByLabel($this->metricsByKeywordAndSearchEngine, $this->metricsByKeyword),
+            self::KEYWORD_BY_CAMPAIGN_RECORD_NAME       => $this->getProcessor()->getDataTableWithSubtablesFromArraysIndexedByLabel($this->metricsByCampaignAndKeyword, $this->metricsByCampaign),
+            self::URL_BY_WEBSITE_RECORD_NAME            => $this->getProcessor()->getDataTableWithSubtablesFromArraysIndexedByLabel($this->metricsByWebsiteAndUrl, $this->metricsByWebsite),
         );
         foreach ($blobRecords as $recordName => $table) {
             $blob = $table->getSerialized($this->maximumRowsInDataTableLevelZero, $this->maximumRowsInSubDataTable, $this->columnToSortByBeforeTruncation);
@@ -276,52 +303,37 @@ class Piwik_Referers_Archiver extends Piwik_PluginsArchiver
         }
     }
 
-    protected function recordDayNumeric()
-    {
-        $numericRecords = array(
-            'Referers_distinctSearchEngines' => count($this->metricsBySearchEngineAndKeyword),
-            'Referers_distinctKeywords'      => count($this->metricsByKeywordAndSearchEngine),
-            'Referers_distinctCampaigns'     => count($this->metricsByCampaign),
-            'Referers_distinctWebsites'      => count($this->metricsByWebsite),
-            'Referers_distinctWebsitesUrls'  => count($this->distinctUrls),
-        );
-
-        foreach ($numericRecords as $name => $value) {
-            $this->getProcessor()->insertNumericRecord($name, $value);
-        }
-    }
-
     public function archivePeriod()
     {
         $dataTableToSum = array(
-            'Referers_type',
-            'Referers_keywordBySearchEngine',
-            'Referers_searchEngineByKeyword',
-            'Referers_keywordByCampaign',
-            'Referers_urlByWebsite',
+            self::REFERER_TYPE_RECORD_NAME,
+            self::KEYWORDS_BY_SEARCH_ENGINE_RECORD_NAME,
+            self::SEARCH_ENGINE_BY_KEYWORD_RECORD_NAME,
+            self::KEYWORD_BY_CAMPAIGN_RECORD_NAME,
+            self::URL_BY_WEBSITE_RECORD_NAME,
         );
         $nameToCount = $this->getProcessor()->archiveDataTable($dataTableToSum, null, $this->maximumRowsInDataTableLevelZero, $this->maximumRowsInSubDataTable, $this->columnToSortByBeforeTruncation);
 
         $mappingFromArchiveName = array(
-            'Referers_distinctSearchEngines' =>
+            self::METRIC_DISTINCT_SEARCH_ENGINE_RECORD_NAME =>
             array('typeCountToUse' => 'level0',
-                  'nameTableToUse' => 'Referers_keywordBySearchEngine',
+                  'nameTableToUse' => self::KEYWORDS_BY_SEARCH_ENGINE_RECORD_NAME,
             ),
-            'Referers_distinctKeywords'      =>
+            self::METRIC_DISTINCT_KEYWORD_RECORD_NAME       =>
             array('typeCountToUse' => 'level0',
-                  'nameTableToUse' => 'Referers_searchEngineByKeyword',
+                  'nameTableToUse' => self::SEARCH_ENGINE_BY_KEYWORD_RECORD_NAME,
             ),
-            'Referers_distinctCampaigns'     =>
+            self::METRIC_DISTINCT_CAMPAIGN_RECORD_NAME      =>
             array('typeCountToUse' => 'level0',
-                  'nameTableToUse' => 'Referers_keywordByCampaign',
+                  'nameTableToUse' => self::KEYWORD_BY_CAMPAIGN_RECORD_NAME,
             ),
-            'Referers_distinctWebsites'      =>
+            self::METRIC_DISTINCT_WEBSITE_RECORD_NAME       =>
             array('typeCountToUse' => 'level0',
-                  'nameTableToUse' => 'Referers_urlByWebsite',
+                  'nameTableToUse' => self::URL_BY_WEBSITE_RECORD_NAME,
             ),
-            'Referers_distinctWebsitesUrls'  =>
+            self::METRIC_DISTINCT_URLS_RECORD_NAME          =>
             array('typeCountToUse' => 'recursive',
-                  'nameTableToUse' => 'Referers_urlByWebsite',
+                  'nameTableToUse' => self::URL_BY_WEBSITE_RECORD_NAME,
             ),
         );
 
diff --git a/plugins/UserCountry/API.php b/plugins/UserCountry/API.php
index ec8c8c12754e136b7041632563bb7a1ca52c2f71..15f5f69ecf38c9c60fb3a2f4967022688da9c122 100644
--- a/plugins/UserCountry/API.php
+++ b/plugins/UserCountry/API.php
@@ -32,11 +32,9 @@ class Piwik_UserCountry_API
 
     public function getCountry($idSite, $period, $date, $segment = false)
     {
-        $recordName = Piwik_UserCountry_Archiver::VISITS_BY_COUNTRY_RECORD_NAME;
-        $dataTable = $this->getDataTable($recordName, $idSite, $period, $date, $segment);
+        $dataTable = $this->getDataTable(Piwik_UserCountry_Archiver::VISITS_BY_COUNTRY_RECORD_NAME, $idSite, $period, $date, $segment);
 
-        // apply filter on the whole datatable in order the inline search to work (searches
-        // are done on "beautiful" label)
+        // apply filter on the whole datatable in order the inline search to work (searches are done on "beautiful" label)
         $dataTable->filter('ColumnCallbackAddMetadata', array('label', 'code'));
         $dataTable->filter('ColumnCallbackAddMetadata', array('label', 'logo', 'Piwik_getFlagFromCode'));
         $dataTable->filter('ColumnCallbackReplace', array('label', 'Piwik_CountryTranslate'));
@@ -48,8 +46,7 @@ class Piwik_UserCountry_API
 
     public function getContinent($idSite, $period, $date, $segment = false)
     {
-        $recordName = Piwik_UserCountry_Archiver::VISITS_BY_COUNTRY_RECORD_NAME;
-        $dataTable = $this->getDataTable($recordName, $idSite, $period, $date, $segment);
+        $dataTable = $this->getDataTable(Piwik_UserCountry_Archiver::VISITS_BY_COUNTRY_RECORD_NAME, $idSite, $period, $date, $segment);
 
         $getContinent = array('Piwik_Common', 'getContinent');
         $dataTable->filter('GroupBy', array('label', $getContinent));
@@ -71,8 +68,7 @@ class Piwik_UserCountry_API
      */
     public function getRegion($idSite, $period, $date, $segment = false)
     {
-        $recordName = Piwik_UserCountry_Archiver::VISITS_BY_REGION_RECORD_NAME;
-        $dataTable = $this->getDataTable($recordName, $idSite, $period, $date, $segment);
+        $dataTable = $this->getDataTable(Piwik_UserCountry_Archiver::VISITS_BY_REGION_RECORD_NAME, $idSite, $period, $date, $segment);
 
         $separator = Piwik_UserCountry_Archiver::LOCATION_SEPARATOR;
         $unk = Piwik_Tracker_Visit::UNKNOWN_CODE;
@@ -114,8 +110,7 @@ class Piwik_UserCountry_API
      */
     public function getCity($idSite, $period, $date, $segment = false)
     {
-        $recordName = Piwik_UserCountry_Archiver::VISITS_BY_CITY_RECORD_NAME;
-        $dataTable = $this->getDataTable($recordName, $idSite, $period, $date, $segment);
+        $dataTable = $this->getDataTable(Piwik_UserCountry_Archiver::VISITS_BY_CITY_RECORD_NAME, $idSite, $period, $date, $segment);
 
          $separator = Piwik_UserCountry_Archiver::LOCATION_SEPARATOR;
         $unk = Piwik_Tracker_Visit::UNKNOWN_CODE;
@@ -204,6 +199,6 @@ class Piwik_UserCountry_API
     {
         Piwik::checkUserHasViewAccess($idSite);
         $archive = Piwik_Archive::build($idSite, $period, $date, $segment);
-        return $archive->getDataTableFromNumeric('UserCountry_distinctCountries');
+        return $archive->getDataTableFromNumeric(Piwik_UserCountry_Archiver::DISTINCT_COUNTRIES_METRIC);
     }
 }
diff --git a/plugins/UserCountry/Archiver.php b/plugins/UserCountry/Archiver.php
index 99bd1e40a185d8217fc8ea6d5bf548e21d3ba0f6..ecd124d67f7d42c2ef77c03105774146af1c1a52 100644
--- a/plugins/UserCountry/Archiver.php
+++ b/plugins/UserCountry/Archiver.php
@@ -150,7 +150,6 @@ class Piwik_UserCountry_Archiver extends Piwik_PluginsArchiver
         $tableCountry = Piwik_ArchiveProcessing_Day::getDataTableFromArray($this->metricsByDimension['location_country']);
         $this->getProcessor()->insertBlobRecord(self::VISITS_BY_COUNTRY_RECORD_NAME, $tableCountry->getSerialized());
         $this->getProcessor()->insertNumericRecord(self::DISTINCT_COUNTRIES_METRIC, $tableCountry->getRowsCount());
-        destroy($tableCountry);
 
         $tableRegion = Piwik_ArchiveProcessing_Day::getDataTableFromArray($this->metricsByDimension['location_region']);
         $serialized = $tableRegion->getSerialized($this->maximumRows, $this->maximumRows, Piwik_Archive::INDEX_NB_VISITS);
diff --git a/plugins/UserSettings/API.php b/plugins/UserSettings/API.php
index dd3820fff729412498f6162f636912887188bbf5..4369d397b903b44a6405cfdab71819fea701e88c 100644
--- a/plugins/UserSettings/API.php
+++ b/plugins/UserSettings/API.php
@@ -45,20 +45,20 @@ class Piwik_UserSettings_API
 
     public function getResolution($idSite, $period, $date, $segment = false)
     {
-        $dataTable = $this->getDataTable('UserSettings_resolution', $idSite, $period, $date, $segment);
+        $dataTable = $this->getDataTable(Piwik_UserSettings_Archiver::RESOLUTION_RECORD_NAME, $idSite, $period, $date, $segment);
         return $dataTable;
     }
 
     public function getConfiguration($idSite, $period, $date, $segment = false)
     {
-        $dataTable = $this->getDataTable('UserSettings_configuration', $idSite, $period, $date, $segment);
+        $dataTable = $this->getDataTable(Piwik_UserSettings_Archiver::CONFIGURATION_RECORD_NAME, $idSite, $period, $date, $segment);
         $dataTable->queueFilter('ColumnCallbackReplace', array('label', 'Piwik_getConfigurationLabel'));
         return $dataTable;
     }
 
     public function getOS($idSite, $period, $date, $segment = false, $addShortLabel = true)
     {
-        $dataTable = $this->getDataTable('UserSettings_os', $idSite, $period, $date, $segment);
+        $dataTable = $this->getDataTable(Piwik_UserSettings_Archiver::OS_RECORD_NAME, $idSite, $period, $date, $segment);
         // these filters are applied directly so other API methods can use GroupBy on the result of this method
         $dataTable->filter('ColumnCallbackAddMetadata', array('label', 'logo', 'Piwik_getOSLogo'));
         if ($addShortLabel) {
@@ -88,18 +88,29 @@ class Piwik_UserSettings_API
     {
         $dataTable = $this->getOS($idSite, $period, $date, $segment, $addShortLabel = false);
         $dataTable->filter('GroupBy', array('label', 'Piwik_UserSettings_getDeviceTypeFromOS'));
+        $this->ensureDefaultRowsInTable($dataTable);
 
-        // make sure the datatable has a row for mobile & desktop (if it has rows)
-        $dataTables = array($dataTable);
-        if ($dataTable instanceof Piwik_DataTable_Array) {
-            $dataTables = $dataTable->getArray();
-        }
+        // set the logo metadata
+        $dataTable->queueFilter('MetadataCallbackReplace',
+            array('logo', 'Piwik_UserSettings_getDeviceTypeImg', null, array('label')));
+
+        // translate the labels
+        $dataTable->queueFilter('ColumnCallbackReplace', array('label', 'Piwik_Translate'));
 
+        return $dataTable;
+    }
+
+    protected function ensureDefaultRowsInTable($dataTable)
+    {
         $requiredRows = array(
             'General_Desktop' => Piwik_Archive::INDEX_NB_VISITS,
             'General_Mobile'  => Piwik_Archive::INDEX_NB_VISITS
         );
 
+        $dataTables = array($dataTable);
+        if ($dataTable instanceof Piwik_DataTable_Array) {
+            $dataTables = $dataTable->getArray();
+        }
         foreach ($dataTables AS $table) {
             if ($table->getRowsCount() == 0) {
                 continue;
@@ -113,22 +124,19 @@ class Piwik_UserSettings_API
                 }
             }
         }
+    }
 
-        // set the logo metadata
-        $dataTable->queueFilter('MetadataCallbackReplace',
-            array('logo', 'Piwik_UserSettings_getDeviceTypeImg', null, array('label')));
-
-        // translate the labels
-        $dataTable->queueFilter('ColumnCallbackReplace', array('label', 'Piwik_Translate'));
-
+    public function getBrowserVersion($idSite, $period, $date, $segment = false)
+    {
+        $dataTable = $this->getBrowserTable($idSite, $period, $date, $segment);
+        $dataTable->filter('ColumnCallbackAddMetadata', array('label', 'shortLabel', 'Piwik_getBrowserShortLabel'));
         return $dataTable;
     }
 
-    public function getBrowserVersion($idSite, $period, $date, $segment = false)
+    protected function getBrowserTable($idSite, $period, $date, $segment)
     {
-        $dataTable = $this->getDataTable('UserSettings_browser', $idSite, $period, $date, $segment);
+        $dataTable = $this->getDataTable(Piwik_UserSettings_Archiver::BROWSER_RECORD_NAME, $idSite, $period, $date, $segment);
         $dataTable->filter('ColumnCallbackAddMetadata', array('label', 'logo', 'Piwik_getBrowsersLogo'));
-        $dataTable->filter('ColumnCallbackAddMetadata', array('label', 'shortLabel', 'Piwik_getBrowserShortLabel'));
         $dataTable->filter('ColumnCallbackReplace', array('label', 'Piwik_getBrowserLabel'));
         return $dataTable;
     }
@@ -139,19 +147,14 @@ class Piwik_UserSettings_API
      */
     public function getBrowser($idSite, $period, $date, $segment = false)
     {
-        $dataTable = $this->getDataTable('UserSettings_browser', $idSite, $period, $date, $segment);
-        $dataTable->filter('ColumnCallbackAddMetadata', array('label', 'logo', 'Piwik_getBrowsersLogo'));
-        $dataTable->filter('ColumnCallbackReplace', array('label', 'Piwik_getBrowserLabel'));
-
-        $getBrowserFromBrowserVersion = 'Piwik_UserSettings_getBrowserFromBrowserVersion';
-        $dataTable->filter('GroupBy', array('label', $getBrowserFromBrowserVersion));
-
+        $dataTable = $this->getBrowserTable($idSite, $period, $date, $segment);
+        $dataTable->filter('GroupBy', array('label', 'Piwik_UserSettings_getBrowserFromBrowserVersion'));
         return $dataTable;
     }
 
     public function getBrowserType($idSite, $period, $date, $segment = false)
     {
-        $dataTable = $this->getDataTable('UserSettings_browserType', $idSite, $period, $date, $segment);
+        $dataTable = $this->getDataTable(Piwik_UserSettings_Archiver::BROWSER_TYPE_RECORD_NAME, $idSite, $period, $date, $segment);
         $dataTable->queueFilter('ColumnCallbackAddMetadata', array('label', 'shortLabel', 'ucfirst'));
         $dataTable->queueFilter('ColumnCallbackReplace', array('label', 'Piwik_getBrowserTypeLabel'));
         return $dataTable;
@@ -159,7 +162,7 @@ class Piwik_UserSettings_API
 
     public function getWideScreen($idSite, $period, $date, $segment = false)
     {
-        $dataTable = $this->getDataTable('UserSettings_wideScreen', $idSite, $period, $date, $segment);
+        $dataTable = $this->getDataTable(Piwik_UserSettings_Archiver::SCREEN_TYPE_RECORD_NAME, $idSite, $period, $date, $segment);
         $dataTable->queueFilter('ColumnCallbackAddMetadata', array('label', 'logo', 'Piwik_getScreensLogo'));
         $dataTable->queueFilter('ColumnCallbackReplace', array('label', 'ucfirst'));
         return $dataTable;
@@ -168,8 +171,8 @@ class Piwik_UserSettings_API
     public function getPlugin($idSite, $period, $date, $segment = false)
     {
         // fetch all archive data required
-        $dataTable = $this->getDataTable('UserSettings_plugin', $idSite, $period, $date, $segment);
-        $browserTypes = $this->getDataTable('UserSettings_browserType', $idSite, $period, $date, $segment);
+        $dataTable = $this->getDataTable(Piwik_UserSettings_Archiver::PLUGIN_RECORD_NAME, $idSite, $period, $date, $segment);
+        $browserTypes = $this->getDataTable(Piwik_UserSettings_Archiver::BROWSER_TYPE_RECORD_NAME, $idSite, $period, $date, $segment);
         $archive = Piwik_Archive::build($idSite, $period, $date, $segment);
         $visitsSums = $archive->getDataTableFromNumeric('nb_visits');
 
@@ -238,7 +241,7 @@ class Piwik_UserSettings_API
 
     public function getLanguage($idSite, $period, $date, $segment = false)
     {
-        $dataTable = $this->getDataTable('UserSettings_language', $idSite, $period, $date, $segment);
+        $dataTable = $this->getDataTable(Piwik_UserSettings_Archiver::LANGUAGE_RECORD_NAME, $idSite, $period, $date, $segment);
         $dataTable->filter('ColumnCallbackReplace', array('label', 'Piwik_LanguageTranslate'));
         $dataTable->filter('ReplaceColumnNames');
         return $dataTable;
diff --git a/plugins/UserSettings/Archiver.php b/plugins/UserSettings/Archiver.php
index fa8721c6e7caf3eb6098dd48c2ed3dd940084178..0e545350b7d3f593b62718221b5008f205ed4451 100644
--- a/plugins/UserSettings/Archiver.php
+++ b/plugins/UserSettings/Archiver.php
@@ -15,7 +15,7 @@ class Piwik_UserSettings_Archiver extends Piwik_PluginsArchiver
 {
     const LANGUAGE_RECORD_NAME = 'UserSettings_language';
     const PLUGIN_RECORD_NAME = 'UserSettings_plugin';
-    const SCREEN_TYPES_RECORD_NAME = 'UserSettings_wideScreen';
+    const SCREEN_TYPE_RECORD_NAME = 'UserSettings_wideScreen';
     const RESOLUTION_RECORD_NAME = 'UserSettings_resolution';
     const BROWSER_RECORD_NAME = 'UserSettings_browser';
     const BROWSER_TYPE_RECORD_NAME = 'UserSettings_browserType';
@@ -94,7 +94,7 @@ class Piwik_UserSettings_Archiver extends Piwik_PluginsArchiver
     protected function aggregateByScreenType(Piwik_DataTable $resolutions)
     {
         $resolutions->filter('GroupBy', array('label', 'Piwik_getScreenTypeFromResolution'));
-        $this->getProcessor()->insertBlobRecord(self::SCREEN_TYPES_RECORD_NAME, $resolutions->getSerialized());
+        $this->getProcessor()->insertBlobRecord(self::SCREEN_TYPE_RECORD_NAME, $resolutions->getSerialized());
     }
 
     protected function aggregateByPlugin()
@@ -142,10 +142,11 @@ class Piwik_UserSettings_Archiver extends Piwik_PluginsArchiver
             self::BROWSER_RECORD_NAME,
             self::BROWSER_TYPE_RECORD_NAME,
             self::RESOLUTION_RECORD_NAME,
-            self::SCREEN_TYPES_RECORD_NAME,
+            self::SCREEN_TYPE_RECORD_NAME,
             self::PLUGIN_RECORD_NAME,
             self::LANGUAGE_RECORD_NAME,
         );
         $this->getProcessor()->archiveDataTable($dataTableToSum, null, $this->maximumRowsInDataTable);
     }
-}
\ No newline at end of file
+}
+
diff --git a/plugins/VisitTime/API.php b/plugins/VisitTime/API.php
index 973a8d3dd850b02ccf88f8199211345a1e861583..50d7f61491523e737128e1ea81eb130fd1fd0abc 100644
--- a/plugins/VisitTime/API.php
+++ b/plugins/VisitTime/API.php
@@ -39,12 +39,12 @@ class Piwik_VisitTime_API
 
     public function getVisitInformationPerLocalTime($idSite, $period, $date, $segment = false)
     {
-        return $this->getDataTable('VisitTime_localTime', $idSite, $period, $date, $segment);
+        return $this->getDataTable(Piwik_VisitTime_Archiver::LOCAL_TIME_RECORD_NAME, $idSite, $period, $date, $segment);
     }
 
     public function getVisitInformationPerServerTime($idSite, $period, $date, $segment = false, $hideFutureHoursWhenToday = false)
     {
-        $table = $this->getDataTable('VisitTime_serverTime', $idSite, $period, $date, $segment);
+        $table = $this->getDataTable(Piwik_VisitTime_Archiver::SERVER_TIME_RECORD_NAME, $idSite, $period, $date, $segment);
         if ($hideFutureHoursWhenToday) {
             $table = $this->removeHoursInFuture($table, $idSite, $period, $date);
         }
diff --git a/plugins/VisitTime/Archiver.php b/plugins/VisitTime/Archiver.php
index 52d3bdbc7f881fd4bfdb9f3a292e5d5d0d0c7c91..6aafc3dcbcc5d3395ad65edf70d8821aaaa41e73 100644
--- a/plugins/VisitTime/Archiver.php
+++ b/plugins/VisitTime/Archiver.php
@@ -11,6 +11,9 @@
 
 class Piwik_VisitTime_Archiver extends Piwik_PluginsArchiver
 {
+    const SERVER_TIME_RECORD_NAME = 'VisitTime_serverTime';
+    const LOCAL_TIME_RECORD_NAME = 'VisitTime_localTime';
+
     public function archiveDay()
     {
         $this->aggregateByLocalTime();
@@ -35,7 +38,7 @@ class Piwik_VisitTime_Archiver extends Piwik_PluginsArchiver
         $metricsByServerTime = $this->convertServerTimeToLocalTimezone($metricsByServerTime);
         $tableServerTime = $this->getProcessor()->getDataTableFromArray($metricsByServerTime);
         $this->makeSureAllHoursAreSet($tableServerTime);
-        $this->getProcessor()->insertBlobRecord('VisitTime_serverTime', $tableServerTime->getSerialized());
+        $this->getProcessor()->insertBlobRecord(self::SERVER_TIME_RECORD_NAME, $tableServerTime->getSerialized());
     }
 
     protected function aggregateByLocalTime()
@@ -43,7 +46,7 @@ class Piwik_VisitTime_Archiver extends Piwik_PluginsArchiver
         $metricsByLocalTime = $this->getProcessor()->getMetricsForLabel("HOUR(log_visit.visitor_localtime)");
         $tableLocalTime = $this->getProcessor()->getDataTableFromArray($metricsByLocalTime);
         $this->makeSureAllHoursAreSet($tableLocalTime);
-        $this->getProcessor()->insertBlobRecord('VisitTime_localTime', $tableLocalTime->getSerialized());
+        $this->getProcessor()->insertBlobRecord(self::LOCAL_TIME_RECORD_NAME, $tableLocalTime->getSerialized());
     }
 
     protected function convertServerTimeToLocalTimezone($metricsByServerTime)
@@ -73,8 +76,8 @@ class Piwik_VisitTime_Archiver extends Piwik_PluginsArchiver
     public function archivePeriod()
     {
         $dataTableToSum = array(
-            'VisitTime_localTime',
-            'VisitTime_serverTime',
+            self::LOCAL_TIME_RECORD_NAME,
+            self::SERVER_TIME_RECORD_NAME,
         );
         $this->getProcessor()->archiveDataTable($dataTableToSum);
     }
diff --git a/plugins/VisitorInterest/API.php b/plugins/VisitorInterest/API.php
index 7adfd7ca4e332a8062d7505f178aba8860a3e348..d3fcd13382ce7770c31b41f0e2b70be4dc55dd01 100644
--- a/plugins/VisitorInterest/API.php
+++ b/plugins/VisitorInterest/API.php
@@ -38,7 +38,7 @@ class Piwik_VisitorInterest_API
 
     public function getNumberOfVisitsPerVisitDuration($idSite, $period, $date, $segment = false)
     {
-        $dataTable = $this->getDataTable('VisitorInterest_timeGap', $idSite, $period, $date, $segment);
+        $dataTable = $this->getDataTable(Piwik_VisitorInterest_Archiver::TIME_SPENT_RECORD_NAME, $idSite, $period, $date, $segment);
         $dataTable->queueFilter('Sort', array('label', 'asc', true));
         $dataTable->queueFilter('BeautifyTimeRangeLabels', array(
                                                                 Piwik_Translate('VisitorInterest_BetweenXYSeconds'),
@@ -49,7 +49,7 @@ class Piwik_VisitorInterest_API
 
     public function getNumberOfVisitsPerPage($idSite, $period, $date, $segment = false)
     {
-        $dataTable = $this->getDataTable('VisitorInterest_pageGap', $idSite, $period, $date, $segment);
+        $dataTable = $this->getDataTable(Piwik_VisitorInterest_Archiver::PAGES_VIEWED_RECORD_NAME, $idSite, $period, $date, $segment);
         $dataTable->queueFilter('Sort', array('label', 'asc', true));
         $dataTable->queueFilter('BeautifyRangeLabels', array(
                                                             Piwik_Translate('VisitorInterest_OnePage'),
@@ -69,9 +69,8 @@ class Piwik_VisitorInterest_API
      */
     public function getNumberOfVisitsByDaysSinceLast($idSite, $period, $date, $segment = false)
     {
-        $recordName = 'VisitorInterest_daysSinceLastVisit';
         $dataTable = $this->getDataTable(
-            $recordName, $idSite, $period, $date, $segment, Piwik_Archive::INDEX_NB_VISITS);
+            Piwik_VisitorInterest_Archiver::DAYS_SINCE_LAST_RECORD_NAME, $idSite, $period, $date, $segment, Piwik_Archive::INDEX_NB_VISITS);
 
         $dataTable->queueFilter('BeautifyRangeLabels', array(
                                                             Piwik_Translate('General_OneDay'), Piwik_Translate('General_NDays')));
@@ -92,7 +91,7 @@ class Piwik_VisitorInterest_API
     public function getNumberOfVisitsByVisitCount($idSite, $period, $date, $segment = false)
     {
         $dataTable = $this->getDataTable(
-            'VisitorInterest_visitsByVisitCount', $idSite, $period, $date, $segment, Piwik_Archive::INDEX_NB_VISITS);
+            Piwik_VisitorInterest_Archiver::VISITS_COUNT_RECORD_NAME, $idSite, $period, $date, $segment, Piwik_Archive::INDEX_NB_VISITS);
 
         $dataTable->queueFilter('BeautifyRangeLabels', array(
                                                             Piwik_Translate('General_OneVisit'), Piwik_Translate('General_NVisits')));
diff --git a/plugins/VisitorInterest/Archiver.php b/plugins/VisitorInterest/Archiver.php
index 59e7e348c14785348de147743334ea072cd5eaf8..fc797e44f3581d87c39ee1caa0fbcccf4efbedff 100644
--- a/plugins/VisitorInterest/Archiver.php
+++ b/plugins/VisitorInterest/Archiver.php
@@ -14,8 +14,9 @@ class Piwik_VisitorInterest_Archiver extends Piwik_PluginsArchiver
     // third element is unit (s for seconds, default is munutes)
     const TIME_SPENT_RECORD_NAME = 'VisitorInterest_timeGap';
     const PAGES_VIEWED_RECORD_NAME = 'VisitorInterest_pageGap';
-    const BY_VISIT_COUNT_RECORD_NAME = 'VisitorInterest_visitsByVisitCount';
+    const VISITS_COUNT_RECORD_NAME = 'VisitorInterest_visitsByVisitCount';
     const DAYS_SINCE_LAST_RECORD_NAME = 'VisitorInterest_daysSinceLastVisit';
+
     protected static $timeGap = array(
         array(0, 10, 's'),
         array(11, 30, 's'),
@@ -83,29 +84,44 @@ class Piwik_VisitorInterest_Archiver extends Piwik_PluginsArchiver
     {
         // these prefixes are prepended to the 'SELECT as' parts of each SELECT expression. detecting
         // these prefixes allows us to get all the data in one query.
-        $timeGapPrefix = 'tg';
-        $pageGapPrefix = 'pg';
-        $visitsByVisitNumPrefix = 'vbvn';
-        $daysSinceLastVisitPrefix = 'dslv';
+        $prefixes = array(
+            self::TIME_SPENT_RECORD_NAME => 'tg',
+            self::PAGES_VIEWED_RECORD_NAME => 'pg',
+            self::VISITS_COUNT_RECORD_NAME => 'vbvn',
+            self::DAYS_SINCE_LAST_RECORD_NAME => 'dslv',
+        );
+        $row = $this->aggregateFromVisits($prefixes);
+
+        foreach($prefixes as $recordName => $selectAsPrefix) {
+            $processor = $this->getProcessor();
+            $dataTable = $processor->getSimpleDataTableFromRow($row, Piwik_Archive::INDEX_NB_VISITS, $selectAsPrefix);
+            $processor->insertBlobRecord($recordName, $dataTable->getSerialized());
+        }
+    }
 
+    protected function aggregateFromVisits($prefixes)
+    {
         // extra condition for the SQL SELECT that makes sure only returning visits are counted
         // when creating the 'days since last visit' report. the SELECT expression below it
         // is used to count all new visits.
         $daysSinceLastExtraCondition = 'and log_visit.visitor_returning = 1';
-        $selectAs = $daysSinceLastVisitPrefix . 'General_NewVisits';
+        $selectAs = $prefixes[self::DAYS_SINCE_LAST_RECORD_NAME] . 'General_NewVisits';
         $newVisitCountSelect = "sum(case when log_visit.visitor_returning = 0 then 1 else 0 end) as `$selectAs`";
 
         // create the select expressions to use
         $timeGapSelects = Piwik_ArchiveProcessing_Day::buildReduceByRangeSelect(
-            'visit_total_time', self::getSecondsGap(), 'log_visit', $timeGapPrefix);
+            'visit_total_time', self::getSecondsGap(), 'log_visit', $prefixes[self::TIME_SPENT_RECORD_NAME]);
+
         $pageGapSelects = Piwik_ArchiveProcessing_Day::buildReduceByRangeSelect(
-            'visit_total_actions', self::$pageGap, 'log_visit', $pageGapPrefix);
+            'visit_total_actions', self::$pageGap, 'log_visit', $prefixes[self::PAGES_VIEWED_RECORD_NAME]);
+
         $visitsByVisitNumSelects = Piwik_ArchiveProcessing_Day::buildReduceByRangeSelect(
-            'visitor_count_visits', self::$visitNumberGap, 'log_visit', $visitsByVisitNumPrefix);
+            'visitor_count_visits', self::$visitNumberGap, 'log_visit', $prefixes[self::VISITS_COUNT_RECORD_NAME]);
 
         $daysSinceLastVisitSelects = Piwik_ArchiveProcessing_Day::buildReduceByRangeSelect(
-            'visitor_days_since_last', self::$daysSinceLastVisitGap, 'log_visit', $daysSinceLastVisitPrefix,
+            'visitor_days_since_last', self::$daysSinceLastVisitGap, 'log_visit', $prefixes[self::DAYS_SINCE_LAST_RECORD_NAME],
             $daysSinceLastExtraCondition);
+
         array_unshift($daysSinceLastVisitSelects, $newVisitCountSelect);
 
         $selects = array_merge(
@@ -113,19 +129,7 @@ class Piwik_VisitorInterest_Archiver extends Piwik_PluginsArchiver
 
         // select data for every report
         $row = $this->getProcessor()->queryVisitsSimple(implode(',', $selects));
-
-        $prefixes = array(
-            self::TIME_SPENT_RECORD_NAME => $timeGapPrefix,
-            self::PAGES_VIEWED_RECORD_NAME => $pageGapPrefix,
-            self::BY_VISIT_COUNT_RECORD_NAME => $visitsByVisitNumPrefix,
-            self::DAYS_SINCE_LAST_RECORD_NAME => $daysSinceLastVisitPrefix,
-        );
-
-        foreach($prefixes as $recordName => $selectAsPrefix) {
-            $processor = $this->getProcessor();
-            $dataTable = $processor->getSimpleDataTableFromRow($row, Piwik_Archive::INDEX_NB_VISITS, $selectAsPrefix);
-            $processor->insertBlobRecord($recordName, $dataTable->getSerialized());
-        }
+        return $row;
     }
 
     /**
@@ -153,7 +157,7 @@ class Piwik_VisitorInterest_Archiver extends Piwik_PluginsArchiver
         $dataTableToSum = array(
             self::TIME_SPENT_RECORD_NAME,
             self::PAGES_VIEWED_RECORD_NAME,
-            self::BY_VISIT_COUNT_RECORD_NAME,
+            self::VISITS_COUNT_RECORD_NAME,
             self::DAYS_SINCE_LAST_RECORD_NAME
         );
         $this->getProcessor()->archiveDataTable($dataTableToSum);
diff --git a/tests/PHPUnit/Integration/expected/test_OneVisitorTwoVisits__VisitsSummary.getColumns_day.xml b/tests/PHPUnit/Integration/expected/test_OneVisitorTwoVisits__VisitsSummary.getColumns_day.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6f5b9fe0780d74e7c40843ea68ef32766bddf6df
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_OneVisitorTwoVisits__VisitsSummary.getColumns_day.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+	<row>nb_uniq_visitors</row>
+	<row>nb_visits</row>
+	<row>nb_actions</row>
+	<row>nb_visits_converted</row>
+	<row>bounce_count</row>
+	<row>sum_visit_length</row>
+	<row>max_actions</row>
+	<row>bounce_rate</row>
+	<row>nb_actions_per_visit</row>
+	<row>avg_time_on_site</row>
+</result>
\ No newline at end of file