database - SQL Server: table locked by SELECT statement? -


in database behind our application have decent sized table (36 columns, 3 , half million rows) causing performance headaches.

this weight of table (over 6 gigs):

tablename   row_count   reserved    data       index_size   unused  schemaname tab           3535587   6427640 kb  1797296 kb  4629504 kb  840 kb  dbo 

recently find out sometimes, when database , table under heavy concurrent use, entire table looks locked.

running query list transaction can find plenty of select queries blocked waiting update statement on table.

the thing looks strange update statement blocked select statement on same table. wait type of blocking select pagelatch sh.

is king of memory subsystem problem? have rethink indexing of our table?

if kill latching select transaction other transactions start getting executed.

there lot of queries our systems throws on table, use several of columns of table using joins, exists, etc..sometimes queries big.

n.b. use hibernate our orm.

something looks strange me (but maybe it's normal) amount of ram memory consumed our db not high (the server not db instance, runs couple of tomcat instances app itself): goes on 500 mb stays around 300..

edit: table structure

create table [dbo].[e1_tur_ordini_giorno](     [id] [varchar](36) not null,     [dt_ordine_giorno] [date] null,     [n_ore] [decimal](10, 2) null,     [hh_inizio] [varchar](10) null,     [hh_fine] [varchar](10) null,     [overload] [int] null,     [nota] [varchar](255) null,     [fk_e0_turno] [varchar](36) null,     [fk_e2_per_dipendente] [varchar](36) null,     [fk_e1_tur_orario_servizio] [varchar](36) null,     [fk_e0_gg_operativo] [varchar](36) null,     [fk_e0_gg_paghe] [varchar](36) null,     [fk_parent_ordine_giorno] [varchar](36) null,     [fk_e0_tipo_rischio] [varchar](36) null,     [fk_e0_utente_inserimento] [varchar](36) null,     [fk_e0_utente_modifica] [varchar](36) null,     [dt_modifica] [datetime2](0) null,     [dt_inserimento] [datetime2](0) null,     [fk_e0_prof_nodo] [varchar](36) null,     [riga] [varchar](20) null,     [dt_paghe] [date] null,     [fl_bloccato] [bigint] null,     [fl_temporaneo] [smallint] null,     [tipo_riga] [varchar](12) null,     [hh_ordinarie] [float] null,     [tipo_modifica] [varchar](12) null,     [fk_e1_tur_servizio] [varchar](36) null,     [codice_importazione] [varchar](45) null,     [fk_e1_tur_testata] [varchar](36) null,     [fl_annullato] [smallint] null,     [fl_compensativo] [smallint] null,     [descrizione] [varchar](255) null,     [fl_recupero] [tinyint] null,     [fk_e0_segmento_dip] [varchar](36) null,     [fl_confermato] [tinyint] null,     [fk_e1_tur_pian_reperibilita] [varchar](36) null,  constraint [pk_e1_tur_ordini_giorno_id] primary key clustered  (     [id] asc )with (pad_index  = off, statistics_norecompute  = off, ignore_dup_key = off, allow_row_locks  = on, allow_page_locks  = on) on [primary] ) on [primary]  go  set ansi_padding off go  alter table [dbo].[e1_tur_ordini_giorno]  nocheck add  constraint [e1_tur_ordini_giorno$fk_e1_tur_ordini_giorno_1] foreign key([fk_e0_utente_inserimento]) references [dbo].[users] ([id]) go  alter table [dbo].[e1_tur_ordini_giorno] check constraint [e1_tur_ordini_giorno$fk_e1_tur_ordini_giorno_1] go  alter table [dbo].[e1_tur_ordini_giorno]  nocheck add  constraint [e1_tur_ordini_giorno$fk_e1_tur_ordini_giorno_10] foreign key([fk_e0_gg_paghe]) references [dbo].[e0_conf_gg_paghe] ([id]) go  alter table [dbo].[e1_tur_ordini_giorno] check constraint [e1_tur_ordini_giorno$fk_e1_tur_ordini_giorno_10] go  alter table [dbo].[e1_tur_ordini_giorno]  nocheck add  constraint [e1_tur_ordini_giorno$fk_e1_tur_ordini_giorno_11] foreign key([fk_e1_tur_servizio]) references [dbo].[e1_tur_servizi] ([id]) go  alter table [dbo].[e1_tur_ordini_giorno] check constraint [e1_tur_ordini_giorno$fk_e1_tur_ordini_giorno_11] go  alter table [dbo].[e1_tur_ordini_giorno]  nocheck add  constraint [e1_tur_ordini_giorno$fk_e1_tur_ordini_giorno_12] foreign key([fk_e1_tur_testata]) references [dbo].[e1_tur_ordini_giorno_testata] ([id]) go  alter table [dbo].[e1_tur_ordini_giorno] check constraint [e1_tur_ordini_giorno$fk_e1_tur_ordini_giorno_12] go  alter table [dbo].[e1_tur_ordini_giorno]  nocheck add  constraint [e1_tur_ordini_giorno$fk_e1_tur_ordini_giorno_2] foreign key([fk_e0_utente_modifica]) references [dbo].[users] ([id]) go  alter table [dbo].[e1_tur_ordini_giorno] check constraint [e1_tur_ordini_giorno$fk_e1_tur_ordini_giorno_2] go  alter table [dbo].[e1_tur_ordini_giorno]  nocheck add  constraint [e1_tur_ordini_giorno$fk_e1_tur_ordini_giorno_3] foreign key([fk_e0_prof_nodo]) references [dbo].[e0_prof_nodi] ([id]) go  alter table [dbo].[e1_tur_ordini_giorno] check constraint [e1_tur_ordini_giorno$fk_e1_tur_ordini_giorno_3] go  alter table [dbo].[e1_tur_ordini_giorno]  nocheck add  constraint [e1_tur_ordini_giorno$fk_e1_tur_ordini_giorno_4] foreign key([fk_e0_turno]) references [dbo].[e0_conf_turni] ([id]) go  alter table [dbo].[e1_tur_ordini_giorno] check constraint [e1_tur_ordini_giorno$fk_e1_tur_ordini_giorno_4] go  alter table [dbo].[e1_tur_ordini_giorno]  nocheck add  constraint [e1_tur_ordini_giorno$fk_e1_tur_ordini_giorno_5] foreign key([fk_e2_per_dipendente]) references [dbo].[e2_per_dipendenti] ([id]) go  alter table [dbo].[e1_tur_ordini_giorno] check constraint [e1_tur_ordini_giorno$fk_e1_tur_ordini_giorno_5] go  alter table [dbo].[e1_tur_ordini_giorno]  nocheck add  constraint [e1_tur_ordini_giorno$fk_e1_tur_ordini_giorno_6] foreign key([fk_e1_tur_orario_servizio]) references [dbo].[e1_tur_orari_servizi] ([id]) go  alter table [dbo].[e1_tur_ordini_giorno] check constraint [e1_tur_ordini_giorno$fk_e1_tur_ordini_giorno_6] go  alter table [dbo].[e1_tur_ordini_giorno]  nocheck add  constraint [e1_tur_ordini_giorno$fk_e1_tur_ordini_giorno_7] foreign key([fk_e0_gg_operativo]) references [dbo].[e0_conf_gg_operativi] ([id]) go  alter table [dbo].[e1_tur_ordini_giorno] check constraint [e1_tur_ordini_giorno$fk_e1_tur_ordini_giorno_7] go  alter table [dbo].[e1_tur_ordini_giorno]  nocheck add  constraint [e1_tur_ordini_giorno$fk_e1_tur_ordini_giorno_8] foreign key([fk_parent_ordine_giorno]) references [dbo].[e1_tur_ordini_giorno] ([id]) go  alter table [dbo].[e1_tur_ordini_giorno] check constraint [e1_tur_ordini_giorno$fk_e1_tur_ordini_giorno_8] go  alter table [dbo].[e1_tur_ordini_giorno]  nocheck add  constraint [e1_tur_ordini_giorno$fk_e1_tur_ordini_giorno_9] foreign key([fk_e0_tipo_rischio]) references [dbo].[e0_decod_tipi_rischi] ([id]) go  alter table [dbo].[e1_tur_ordini_giorno] check constraint [e1_tur_ordini_giorno$fk_e1_tur_ordini_giorno_9] go  alter table [dbo].[e1_tur_ordini_giorno]  nocheck add  constraint [fk_e1_tur_ordini_giorno_e0_prof_nodi] foreign key([fk_e0_segmento_dip]) references [dbo].[e0_prof_nodi] ([id]) go  alter table [dbo].[e1_tur_ordini_giorno] check constraint [fk_e1_tur_ordini_giorno_e0_prof_nodi] go  alter table [dbo].[e1_tur_ordini_giorno]  nocheck add  constraint [fk_e1_tur_ordini_giorno_e1_tur_pian_reperibilita] foreign key([fk_e1_tur_pian_reperibilita]) references [dbo].[e1_tur_pian_reperibilita] ([id]) go  alter table [dbo].[e1_tur_ordini_giorno] check constraint [fk_e1_tur_ordini_giorno_e1_tur_pian_reperibilita] go  alter table [dbo].[e1_tur_ordini_giorno] add  constraint [df__e1_tur_ordin__id__5e7fe7d2]  default (n'0') [id] go  alter table [dbo].[e1_tur_ordini_giorno] add  constraint [df__e1_tur_or__dt_or__5f740c0b]  default (null) [dt_ordine_giorno] go  alter table [dbo].[e1_tur_ordini_giorno] add  constraint [df__e1_tur_or__n_ore__60683044]  default (null) [n_ore] go  alter table [dbo].[e1_tur_ordini_giorno] add  constraint [df__e1_tur_or__hh_in__615c547d]  default (null) [hh_inizio] go  alter table [dbo].[e1_tur_ordini_giorno] add  constraint [df__e1_tur_or__hh_fi__625078b6]  default (null) [hh_fine] go  alter table [dbo].[e1_tur_ordini_giorno] add  constraint [df__e1_tur_or__overl__63449cef]  default (null) [overload] go  alter table [dbo].[e1_tur_ordini_giorno] add  constraint [df__e1_tur_ord__nota__6438c128]  default (null) [nota] go  alter table [dbo].[e1_tur_ordini_giorno] add  constraint [df__e1_tur_or__fk_e0__652ce561]  default (null) [fk_e0_turno] go  alter table [dbo].[e1_tur_ordini_giorno] add  constraint [df__e1_tur_or__fk_e2__6621099a]  default (null) [fk_e2_per_dipendente] go  alter table [dbo].[e1_tur_ordini_giorno] add  constraint [df__e1_tur_or__fk_e1__67152dd3]  default (null) [fk_e1_tur_orario_servizio] go  alter table [dbo].[e1_tur_ordini_giorno] add  constraint [df__e1_tur_or__fk_e0__68fd7645]  default (null) [fk_e0_gg_operativo] go  alter table [dbo].[e1_tur_ordini_giorno] add  constraint [df__e1_tur_or__fk_e0__69f19a7e]  default (null) [fk_e0_gg_paghe] go  alter table [dbo].[e1_tur_ordini_giorno] add  constraint [df__e1_tur_or__fk_pa__6ae5beb7]  default (null) [fk_parent_ordine_giorno] go  alter table [dbo].[e1_tur_ordini_giorno] add  constraint [df__e1_tur_or__fk_e0__6bd9e2f0]  default (null) [fk_e0_tipo_rischio] go  alter table [dbo].[e1_tur_ordini_giorno] add  constraint [df__e1_tur_or__fk_e0__6cce0729]  default (null) [fk_e0_utente_inserimento] go  alter table [dbo].[e1_tur_ordini_giorno] add  constraint [df__e1_tur_or__fk_e0__6dc22b62]  default (null) [fk_e0_utente_modifica] go  alter table [dbo].[e1_tur_ordini_giorno] add  constraint [df__e1_tur_or__dt_mo__6eb64f9b]  default (null) [dt_modifica] go  alter table [dbo].[e1_tur_ordini_giorno] add  constraint [df__e1_tur_or__dt_in__6faa73d4]  default (null) [dt_inserimento] go  alter table [dbo].[e1_tur_ordini_giorno] add  constraint [df__e1_tur_or__fk_e0__709e980d]  default (null) [fk_e0_prof_nodo] go  alter table [dbo].[e1_tur_ordini_giorno] add  constraint [df__e1_tur_ord__riga__7192bc46]  default (null) [riga] go  alter table [dbo].[e1_tur_ordini_giorno] add  constraint [df__e1_tur_or__dt_pa__7286e07f]  default (null) [dt_paghe] go  alter table [dbo].[e1_tur_ordini_giorno] add  constraint [df__e1_tur_or__fl_bl__737b04b8]  default ((0)) [fl_bloccato] go  alter table [dbo].[e1_tur_ordini_giorno] add  constraint [df__e1_tur_or__fl_te__746f28f1]  default ((0)) [fl_temporaneo] go  alter table [dbo].[e1_tur_ordini_giorno] add  constraint [df__e1_tur_or__tipo___75634d2a]  default (n'n') [tipo_riga] go  alter table [dbo].[e1_tur_ordini_giorno] add  constraint [df__e1_tur_or__hh_or__76577163]  default ((0)) [hh_ordinarie] go  alter table [dbo].[e1_tur_ordini_giorno] add  constraint [df__e1_tur_or__tipo___774b959c]  default (n'n') [tipo_modifica] go  alter table [dbo].[e1_tur_ordini_giorno] add  constraint [df__e1_tur_or__fk_e1__783fb9d5]  default (null) [fk_e1_tur_servizio] go  alter table [dbo].[e1_tur_ordini_giorno] add  constraint [df__e1_tur_or__codic__7933de0e]  default (null) [codice_importazione] go  alter table [dbo].[e1_tur_ordini_giorno] add  constraint [df__e1_tur_or__fk_e1__7a280247]  default (null) [fk_e1_tur_testata] go  alter table [dbo].[e1_tur_ordini_giorno] add  constraint [df__e1_tur_or__fl_an__7b1c2680]  default ((0)) [fl_annullato] go  alter table [dbo].[e1_tur_ordini_giorno] add  constraint [df__e1_tur_or__fl_co__7c104ab9]  default ((0)) [fl_compensativo] go  alter table [dbo].[e1_tur_ordini_giorno] add  constraint [df_e1_tur_ordini_giorno_fl_confermato]  default ((0)) [fl_confermato] go 

edit 2 i'm adding 2 example queries:

1 - big select caused lock of table in question , wait type pageiolatch_sh: n.b: query executed hibernate after evaluating hbm mapping several formulas inside.

select distinct ordinegior0_.id id128_0_, giornooper1_.id id510_1_, turnolite2_.id id512_2_, dipendente3_.id id396_3_, reparto4_.id id468_4_,  orarioserv5_.id id521_5_, giornosett6_.id id6_6_, periodoser7_.id id519_7_, servizioop8_.id id156_8_, ordinegior0_.riga riga128_0_,  ordinegior0_.n_ore n2_128_0_, ordinegior0_.hh_inizio hh7_128_0_, ordinegior0_.hh_fine hh8_128_0_, ordinegior0_.overload overload128_0_,  ordinegior0_.dt_ordine_giorno dt3_128_0_, ordinegior0_.dt_paghe dt14_128_0_, ordinegior0_.nota nota128_0_, ordinegior0_.fk_e1_tur_servizio fk15_128_0_,  ordinegior0_.fl_confermato fl16_128_0_, ordinegior0_.dt_inserimento dt17_128_0_, ordinegior0_.dt_modifica dt13_128_0_, ordinegior0_.fl_bloccato fl18_128_0_,  ordinegior0_.fl_temporaneo fl19_128_0_, ordinegior0_.fl_annullato fl4_128_0_, ordinegior0_.tipo_riga tipo20_128_0_, ordinegior0_.tipo_modifica tipo33_128_0_,  ordinegior0_.hh_ordinarie hh22_128_0_, ordinegior0_.fl_compensativo fl23_128_0_, ordinegior0_.descrizione descrizi9_128_0_,  ordinegior0_.fl_recupero fl24_128_0_, ordinegior0_.fk_e0_segmento_dip fk25_128_0_, ordinegior0_.fk_e1_tur_pian_reperibilita fk26_128_0_,  ordinegior0_.fk_e0_utente_inserimento fk27_128_0_, ordinegior0_.fk_e0_utente_modifica fk28_128_0_,  ordinegior0_.fk_e0_prof_nodo fk6_128_0_, ordinegior0_.fk_e1_tur_testata fk29_128_0_, ordinegior0_.fk_e0_turno fk30_128_0_,  ordinegior0_.fk_e2_per_dipendente fk5_128_0_, ordinegior0_.fk_parent_ordine_giorno fk34_128_0_, ordinegior0_.fk_e1_tur_orario_servizio fk12_128_0_,  ordinegior0_.fk_e0_tipo_rischio fk31_128_0_, ordinegior0_.fk_e0_gg_operativo fk32_128_0_,   (select case when not exists(select 'x' e1_tur_ordini_giorno_pubb p p.fk_e1_tur_ordine_giorno = ordinegior0_.id       , p.fk_e2_per_dipendente=ordinegior0_.fk_e2_per_dipendente                    , p.hh_inizio = ordinegior0_.hh_inizio                    , p.hh_fine = ordinegior0_.hh_fine                    , p.fl_annullato=0) 0                                      else      case when (select p.dt_lettura e1_tur_ordini_giorno_pubb p p.fk_e1_tur_ordine_giorno = ordinegior0_.id                  , p.fk_e2_per_dipendente=ordinegior0_.fk_e2_per_dipendente                                , p.hh_inizio = ordinegior0_.hh_inizio                                , p.hh_fine = ordinegior0_.hh_fine                                , p.fl_annullato=0 ) not null                                2                  else 1                                end           end      ) formula956_0_,   (select case when (select count(ia.id)              e1_tur_ind_agg_odg ia               ia.fk_e1_tur_odg = ordinegior0_.id              , ia.fl_manuale = 1) > 0            1           else 0       end) formula957_0_,   (select case           when ordinegior0_.fl_temporaneo = 1                     (select count(st.id)           e1_tur_servizi_temporanei st            st.fk_e1_ordine_giorno = ordinegior0_.id             , st.fk_e2_com_prestazione not null)        else 0       end) formula958_0_,    ( select min(t.data_timbratura)          e2_per_timbrature_odg ot join e1_tur_timbrature t on t.id = ot.fk_e1_tur_timbratura         ot.fk_e1_tur_ordine_giorno = ordinegior0_.id        , t.fl_entrata = 1 ) formula959_0_,    ( select min(t.data_timbratura)        e2_per_timbrature_odg ot join e1_tur_timbrature t on t.id = ot.fk_e1_tur_timbratura          ot.fk_e1_tur_ordine_giorno = ordinegior0_.id        , t.fl_entrata = 0 ) formula960_0_,   giornooper1_.codice codice510_1_, giornooper1_.descrizione descrizi3_510_1_, giornooper1_.fl_lavorato fl4_510_1_, giornooper1_.fl_riposo fl5_510_1_,  giornooper1_.fl_permesso fl6_510_1_, giornooper1_.fl_rip_semplice fl7_510_1_, giornooper1_.fl_reperibile fl8_510_1_,  giornooper1_.priorita_assegnazione priorita9_510_1_, turnolite2_.codice codice512_2_, turnolite2_.descrizione descrizi3_512_2_,  turnolite2_.hh_inizio hh4_512_2_, turnolite2_.hh_fine hh5_512_2_, turnolite2_.fl_attivo fl6_512_2_, turnolite2_.codice_vis codice7_512_2_,  turnolite2_.fk_e0_tipo_turno fk8_512_2_, dipendente3_.nome nome396_3_, dipendente3_.cognome cognome396_3_, dipendente3_.fl_sesso fl4_396_3_,  dipendente3_.alias alias396_3_, dipendente3_.matricola matricola396_3_, dipendente3_.fl_tracciato fl7_396_3_, dipendente3_.fl_paghe fl8_396_3_,  dipendente3_.fl_outsourcing fl9_396_3_, dipendente3_.fl_giostra fl10_396_3_, dipendente3_.fl_segmento_est fl11_396_3_, dipendente3_.gg_prova gg12_396_3_,  dipendente3_.codice_fiscale codice13_396_3_, dipendente3_.dt_assunzione dt14_396_3_, dipendente3_.dt_nascita dt15_396_3_,  dipendente3_.dt_licenziamento dt16_396_3_, dipendente3_.num_badge num17_396_3_, dipendente3_.codice_tracciato_paghe codice18_396_3_,  dipendente3_.costo_orario costo19_396_3_, dipendente3_.fl_timbratura fl20_396_3_, dipendente3_.dt_anzianita dt21_396_3_,  dipendente3_.numero_buono_pasto numero22_396_3_, dipendente3_.fl_pref_da_recinto fl32_396_3_, dipendente3_.fk_e2_hr_soggetto fk34_396_3_,  dipendente3_.fk_e0_utente_inserimento fk23_396_3_, dipendente3_.fk_e0_utente_modifica fk24_396_3_, dipendente3_.fk_e0_ccnl fk25_396_3_,  dipendente3_.fk_e0_unita_locale_nodo fk26_396_3_, dipendente3_.dt_inserimento dt27_396_3_, dipendente3_.dt_modifica dt28_396_3_,  dipendente3_.fk_e0_reparto fk29_396_3_, dipendente3_.fk_e0_nodo_aziendale fk30_396_3_, dipendente3_.fk_e0_prof_nodo fk31_396_3_,  reparto4_.codice codice468_4_, reparto4_.descrizione descrizi3_468_4_, reparto4_.dt_inserimento dt4_468_4_, reparto4_.dt_modifica dt5_468_4_,  reparto4_.fk_e0_utente_inserimento fk6_468_4_, reparto4_.fk_e0_utente_modifica fk7_468_4_, reparto4_.fk_e0_prof_nodo fk8_468_4_,  orarioserv5_.codice codice521_5_, orarioserv5_.hh_inizio hh3_521_5_, orarioserv5_.hh_fine hh4_521_5_, orarioserv5_.fl_dopo_mezzanotte fl5_521_5_,  orarioserv5_.dt_inserimento dt6_521_5_, orarioserv5_.dt_modifica dt7_521_5_, orarioserv5_.fk_e0_utente_inserimento fk8_521_5_,  orarioserv5_.fk_e0_utente_modifica fk9_521_5_, orarioserv5_.fk_e0_prof_nodo fk10_521_5_, orarioserv5_.fk_e0_giorno_settimana fk11_521_5_,  orarioserv5_.fk_e0_tipo_rischio fk12_521_5_, orarioserv5_.fk_e1_tur_periodo_servizio fk13_521_5_, orarioserv5_.fk_parent_orario_servizio fk14_521_5_,  giornosett6_.codice codice6_6_, giornosett6_.giorno giorno6_6_, periodoser7_.codice codice519_7_, periodoser7_.dt_inizio dt3_519_7_,  periodoser7_.dt_fine dt4_519_7_, periodoser7_.dt_inserimento dt5_519_7_, periodoser7_.dt_modifica dt6_519_7_, periodoser7_.fl_calendario fl7_519_7_,  periodoser7_.fl_festivo fl8_519_7_, periodoser7_.fk_e0_utente_inserimento fk9_519_7_, periodoser7_.fk_e0_utente_modifica fk10_519_7_,  periodoser7_.fk_e0_prof_nodo fk11_519_7_, periodoser7_.fk_e1_tur_servizio fk12_519_7_, servizioop8_.codice codice156_8_,  servizioop8_.descrizione descrizi3_156_8_, servizioop8_.alias alias156_8_, servizioop8_.fl_giostra fl5_156_8_, servizioop8_.fl_fattura fl6_156_8_,  servizioop8_.fl_pattuglia fl7_156_8_, servizioop8_.fl_temporaneo fl8_156_8_, servizioop8_.fl_armato fl9_156_8_, servizioop8_.fl_scacchiera fl10_156_8_,  servizioop8_.dt_scadenza dt13_156_8_, servizioop8_.dt_inserimento dt11_156_8_, servizioop8_.dt_modifica dt12_156_8_,  servizioop8_.codice_post_serv codice14_156_8_, servizioop8_.codice_ps_cedente codice15_156_8_, servizioop8_.cod_selettiva cod16_156_8_,  servizioop8_.ruolo_ext ruolo17_156_8_, servizioop8_.fl_usa_selettiva fl18_156_8_, servizioop8_.colore colore156_8_, servizioop8_.fl_tolleranza fl20_156_8_,  servizioop8_.min_prima_fascia min21_156_8_, servizioop8_.min_fasce_succ min22_156_8_, servizioop8_.fl_badge_tag fl23_156_8_,  servizioop8_.fl_pausa fl24_156_8_, servizioop8_.fl_pref_da_recinto fl25_156_8_, servizioop8_.fk_e0_utente_inserimento fk31_156_8_,  servizioop8_.fk_e0_utente_modifica fk32_156_8_, servizioop8_.fk_e0_prof_nodo fk33_156_8_, servizioop8_.fk_e2_com_prestazione fk30_156_8_,  servizioop8_.fk_e0_servizio fk29_156_8_    e1_tur_ordini_giorno ordinegior0_  left outer join e0_conf_gg_operativi giornooper1_  on ordinegior0_.fk_e0_gg_operativo=giornooper1_.id  left outer join e0_conf_turni turnolite2_  on ordinegior0_.fk_e0_turno=turnolite2_.id  left outer join e2_per_dipendenti dipendente3_  on ordinegior0_.fk_e2_per_dipendente=dipendente3_.id  left outer join e0_decod_reparti reparto4_  on dipendente3_.fk_e0_reparto=reparto4_.id  left outer join e1_tur_orari_servizi orarioserv5_  on ordinegior0_.fk_e1_tur_orario_servizio=orarioserv5_.id  left outer join e0_conf_giorni_settimana giornosett6_  on orarioserv5_.fk_e0_giorno_settimana=giornosett6_.id  left outer join e1_tur_periodi_servizi periodoser7_   on orarioserv5_.fk_e1_tur_periodo_servizio=periodoser7_.id   left outer join e1_tur_servizi servizioop8_   on periodoser7_.fk_e1_tur_servizio=servizioop8_.id    ordinegior0_.dt_ordine_giorno>=@p0   , ordinegior0_.dt_ordine_giorno<=@p1   , (ordinegior0_.fk_e1_tur_orario_servizio in   (@p2 , @p3 , @p4 , @p5 , @p6 , @p7 , @p8 , @p9))        

2 - second select query way simpler , didn't cause lock, execution time worrying, 3-4 minutes.

    select distinct servizioop0_.id id162, servizioop0_.codice codice162, servizioop0_.descrizione descrizi3_162_,  servizioop0_.alias alias162, servizioop0_.fl_giostra fl5_162, servizioop0_.fl_fattura fl6_162_,   servizioop0_.fl_pattuglia fl7_162, servizioop0_.fl_temporaneo fl8_162, servizioop0_.fl_armato fl9_162_,   servizioop0_.fl_scacchiera fl10_162, servizioop0_.dt_scadenza dt13_162, servizioop0_.dt_inserimento dt11_162_,   servizioop0_.dt_modifica dt12_162, servizioop0_.codice_post_serv codice14_162,   servizioop0_.codice_ps_cedente codice15_162, servizioop0_.cod_selettiva cod16_162, servizioop0_.ruolo_ext ruolo17_162_,   servizioop0_.fl_usa_selettiva fl18_162, servizioop0_.colore colore162, servizioop0_.fl_tolleranza fl20_162_,   servizioop0_.min_prima_fascia min21_162, servizioop0_.min_fasce_succ min22_162, servizioop0_.fl_badge_tag fl23_162_,   servizioop0_.fl_pausa fl24_162, servizioop0_.fl_pref_da_recinto fl25_162,   servizioop0_.fk_e0_utente_inserimento fk31_162, servizioop0_.fk_e0_utente_modifica fk32_162,   servizioop0_.fk_e0_prof_nodo fk33_162, servizioop0_.fk_e2_com_prestazione fk30_162,   servizioop0_.fk_e0_servizio fk29_162_    e1_tur_servizi servizioop0_   servizioop0_.fk_e0_prof_nodo in ('f4001621-6f70-11e1-94aa-    005056bb0003')   ,   (exists (select 'extra' e1_tur_ordini_giorno ordinegior1_     ordinegior1_.fk_e1_tur_servizio=servizioop0_.id     , ordinegior1_.dt_ordine_giorno>='2015-06-01'     , ordinegior1_.dt_ordine_giorno<='2015-06-30'    ))  

the number of rows in e1_tur_ordini_giorno between '2015-06-01' , '2015-06-30' 30.000 rows. there no indexes on table e1_tur_servizi.


Comments

Popular posts from this blog

javascript - Bootstrap Popover: iOS Safari strange behaviour -

Magento/PHP - Get phones on all members in a customer group -

session - Logging Out Using PHP -