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
Post a Comment