<?php
include_once("c_debug_info.php");

class c_page_cab_debug_sql_test extends c_page_cab_debug_info
{
  public $h1='Тест SQL' ;

  function block_main()
  { $this->page_title() ;
    $this->panel_info() ;
  }


  function panel_info()
  {
        ?>
        <form>
            Кол-во добавляемых строк <input name="count" type="text" value="<?if (is_numeric($_POST['count'])) echo $_POST['count']; else echo '100';?>">
            <input  class=v1 cmd=execTest type="submit" value="Выполнить">
        </form>
        <?
      if ($_POST['cmd']=='execTest') {

          if (is_numeric($_POST['count'])) {
              $k=$_POST['count'];
              ?>
              <table class="basic">
                  <tr>
                      <th>Таблица</th>
                      <th>Добавление записей</th>
                      <th>Удаление записей</th>
                  </tr>
              <?

              $time_array=[];

              $last_log_pkey=execSQL_value('select max(pkey) from obj_site_mo_log');

              $t=fixed_time();
              $reg_log_name='test_sql_log';

              for($i=0; $i<$k; $i++) {
                  $t1 = fixed_time();
                  LOGS()->reg_log($reg_log_name,'Тест добавления записи в obj_site_mo_log '.$i.' из '.$k,array('data'=>array('test'=>'test','test2'=>'test2','time'=>($t1-$t))));
                  $t2 = fixed_time();
                  $time_array[]=$t2-$t1;
              }

              ?>
              <tr>
                  <td>obj_site_mo_log</td>
                  <td class="left">
                      <?
                      echo 'obj_site_mo_log добавлено '.$k.' записей за '.round(($t2-$t),4).' сек.'.'<br>';
                      if (_sizeof($time_array)) echo 'среднее время добавления записи '.round(array_sum($time_array)/_sizeof($time_array),4).' сек.'.'<br>';
                      ?>
                  </td>
                  <td class="left">
                      <?
                      $t1 = fixed_time();
                      execSQL_update('delete from obj_site_mo_log where pkey>'.$last_log_pkey.' and obj_name="'.$reg_log_name.'"');
                      $t2 = fixed_time();
                      echo 'obj_site_mo_log удалены тестовые записи за '.($t2-$t).' сек.'.'<br>';
                      ?>
                  </td>
              </tr>
              <?

              $this->test_sql_table('obj_site_mo_session',$k);

              $this->test_sql_table('obj_site_mo_session_DTW',$k);

              $this->test_sql_table('obj_site_post_log',$k);

              $this->test_sql_table('obj_site_req_log',$k);

              $this->test_sql_table('obj_site_personals',$k);

              $this->test_sql_table('obj_site_personals_image',$k);
              ?>
              </table>
              <?
          } else {
              echo 'Должно быть передано число';
          }

      }

  }

  function test_sql_table($table_name,$k) {
      $rec=execSQL_van('select * from '.$table_name.' order by pkey desc limit 1');

      if (_sizeof($rec)) {
          $t=fixed_time();
          $time_array=[];
          $pkey=$rec['pkey'];
          unset($rec['pkey']);
          unset($rec['temp']);
          unset($rec['_reffer']);
          foreach ($rec as $name_field=>$value_filed) {
              if (!isset($rec[$name_field])) unset($rec[$name_field]);
          }

          $rec['enabled']=0;
          $rec['_enabled']=0;
          for($i=0; $i<$k; $i++) {
              $t1 = fixed_time();
              adding_rec_to_table($table_name,$rec,1);
              $t2 = fixed_time();
              $time_array[]=$t2-$t1;
          }



          ?>
          <tr>
              <td><?echo $table_name?></td>
              <td class="left">
                  <?
                  echo $table_name.' добавлено '.$k.' записей за '.($t2-$t).' сек.'.'<br>';
                  if (_sizeof($time_array)) echo 'среднее время добавления записи '.round(array_sum($time_array)/_sizeof($time_array),4).' сек.'.'<br>';
                  ?>
              </td>
              <td class="left">
                  <?
                  $t1 = fixed_time();
                  execSQL_update('delete from '.$table_name.' where pkey>'.$pkey.' and enabled=0 and _enabled=0');
                  $t2 = fixed_time();
                  echo $table_name.' удалены тестовые записи за '.($t2-$t).' сек.'.'<br>';
                  ?>
              </td>
          </tr>
          <?
      }
  }

}

?>
