Visualizzare le query SQL

Per visualizzare le query SQL che vengono inviate al serverDB, si può utilizzare P6Spy:

  1. Scaricare da:
    1. sito ufficiale
    2. sourceforge
  2. Scompattare il file p6spy-install.jar, come se fosse un file zip (individuare i file p6spy.jar e spy.properties)
  3. Mettere il file p6spy.jar tra le dipendenze del progeto
    1. Netbeans: Tasto destro sul progetto -> Properties -> Libraries -> Add JAR/Folder -> selezionare il file
  4. Nel file hibernate.cfg.xlm sostituire:
    1. MySql ->
      <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> con
      <property name="hibernate.connection.driver_class">com.p6spy.engine.spy.P6SpyDriver</property>
  5. Copiare il file spy.properties nel progetto e metterlo nella classpath
    1. Netbeans: Tasto destro sul progetto -> Properties -> Libraries -> Add JAR/Folder -> selezionare il file
  6. Modificare la voce realdriver col driver usato (è quello che era scritto nel file hibernate.cfg.xml)
    1. MySql -> realdriver=com.mysql.jdbc.Driver
  7. Sempre nel file spy.properties modificare la voce logfile:
  8. logfile = c:/spy.log (nel caso di Windows)
  9. logfile = /srv/log/spy.log (nel caso di Linux)

tratto da:

http://www.mkyong.com/hibernate/how-to-display-hibernate-sql-parameter-values-solution/

 

Partizionamento

Se ho una tabella con molti record, e quindi un grosso file, posso decidere di dividere il file in n più piccoli e, in base alla query, ottenere prestazioni migliori.

Un ottimo punto da cui iniziare è: StarData

al quale possiamo aggiungere:

  • Per sapere dove sono saltati i file delle tabelle:

show variables like ‘datadir’

  • Per avere informazioni sullo stato attuale

SELECT DISTINCT PARTITION_EXPRESSION
FROM INFORMATION_SCHEMA.PARTITIONS
WHERE TABLE_SCHEMA=’nomeSchema’ AND TABLE_NAME=’nomeTabella’

SELECT PARTITION_ORDINAL_POSITION, TABLE_ROWS, PARTITION_METHOD
FROM information_schema.PARTITIONS
WHERE TABLE_SCHEMA = ‘nomeSchema’ AND TABLE_NAME = ‘nomeTabella’

  • Per sapere quali file legge una determinata query

EXPLAIN partitions SELECT * FROM tabella WHERE id=1234

  • Per inizializzare

ALTER TABLE nomeTabella
PARTITION BY LIST COLUMNS (idCheVoglioUsare) (
PARTITION P111 VALUES IN (‘111’),
PARTITION P222 VALUES IN (‘222’)
)

  • Per aggiungere altre partizioni

ALTER TABLE nomeTabella
ADD PARTITION (
PARTITION a61714 VALUES IN (‘61714’)
)

  • Per cancellare tutte le partizioni e riavere un solo file per la tabella indicata

ALTER TABLE nomeTabella REMOVE PARTITIONING

  • Per cancellare solo una partizione

ALTER TABLE eventdata2 DROP PARTITION a61714

 

JQuery DatePicker in un Form

Per usare il DatePicker di JQuery all’interno di un formbisogna seguire i seguenti passi:

  1. Scaricare la versione completa del framework
  2. Scompattare e andare nella cartella \extras\library\
  3. Copiare la cartella ZendX all’interno della cartella library del progetto (\library\ZendX)
  4. Nel layout (dopo il body) del progetto, inserire il codice sottostante, questo farà caricare i file di JQuery da internet, dal sito di google, se si è dentro il form, le altre se non si è dentro il form, con la versione indicata nel file .\ZendX\JQuery.php con le variabili
    1. const DEFAULT_JQUERY_VERSION = “1.12.0”;
    2. const DEFAULT_UI_VERSION
  5. All’inizio del form inserire
    1. $form = new ZendX_JQuery_Form();
  6. e poi:

$datanascita = new ZendX_JQuery_Form_Element_DatePicker(‘datanascita’,
array(“label” => “Data di Nascita<br>(gg/mm/aaaa): “)
);
$datanascita->setJQueryParams(array(‘dateFormat’=> ‘dd/mm/yy’));

 

nel layout inserire:

<body>
<?php
try {
echo $this->jQuery();
} catch (Exception $e) { ?>
<script
src=”<?php echo($this->baseUrl()); ?>/js/lib/jquery-1.12.0.min.js”
type=”text/javascript” charset=”utf8″></script>
<script
src=”<?php echo($this->baseUrl()); ?>/js/lib/jquery-ui-1.11.4.custom/jquery-ui.min.js”
type=”text/javascript” charset=”utf8″></script>
<?php
}
?>