SQL Server - Procedimientos en las vistas.. Buena idea?

 
Vista:
sin imagen de perfil
Val: 31
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Procedimientos en las vistas.. Buena idea?

Publicado por caleb (13 intervenciones) el 08/02/2021 21:24:40
Buenas tardes, quiero saber que tan recomendable es hacerle un Procedimiento Almacenado a una vista la cual esta llenisima de datos y demora mucho en ejecutarse...
Será más viable hacer dicho procedimiento almacenado directamente a las tablas? Me aconsejaron también dividir las consultas en vez de hacer una consulta grande.

Cualquier tip es de mucha ayuda, gracias :)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Procedimientos en las vistas.. Buena idea?

Publicado por Isaias (4558 intervenciones) el 08/02/2021 23:42:15
Estas combinando VISTA y STORE PROCEDURE, ¿Cual es el PROBLEMA a resolver?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 31
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Procedimientos en las vistas.. Buena idea?

Publicado por caleb (13 intervenciones) el 09/02/2021 12:16:34
Buenos días.
Me refiero que si hace falta combinarlos para obtener una consulta más rápida o simplemente con la vista indexada es más que suficiente?
Solo necesito comprender bien eso antes de ponerme a realizar el código. Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Procedimientos en las vistas.. Buena idea?

Publicado por Isaias (4558 intervenciones) el 09/02/2021 16:28:03
Las vistas tienen como objetivo "ocultar" informacion sensible que no quieres mostrar, si ese es tu objetivo, pues si, es la herramienta adecuada para hacerlo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 31
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Procedimientos en las vistas.. Buena idea?

Publicado por caleb (13 intervenciones) el 09/02/2021 17:39:09
Vale, en efecto es uno de los objetivos, aunque el principal que tengo en mente es reducir lo más que se pueda el tiempo de cada consulta, de cada ejecución de la vista o bien el SP :D

De igual forma, muchas gracias por la explicación.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Procedimientos en las vistas.. Buena idea?

Publicado por Isaias (4558 intervenciones) el 10/02/2021 17:54:05
El tiempo de respuesta esta dado por varios factores, MEMORA RAM ASIGNADA, ARCHIVOS EN LA BASE TEMPDB, INDICES SEPARADOS DE LOS DATOS Y LOS LOGS, INDICES Y ESTADISTICAS BIEN CREADOS Y ACTUALIZADOS.

No se da por que la consulta sea a una VISTA o en un PROCEDIMIENTO ALMACENADO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Procedimientos en las vistas.. Buena idea?

Publicado por anonymous (19 intervenciones) el 10/02/2021 18:12:00
El procedimiento sería aconsejable en escenarios, donde se tenga que extraer volúmenes altos de información, que involucren cálculos y operaciones complejas, y sea necesario recurrir al empleo de tablas temporales.

Pero lo primero sería hacer un explain plan y observar que dice el propio motor, donde está consumiendo más recursos.

Son muchos los factores a tener en cuenta y la lentitud podría obedecer a muchas causas, hay que fijarse bien si ese query está empleando buenos índices, como se están efectuando los joins, hay uso excesivo de OR, se está utilizando When Case, se está utilizando Not In en vez de Not Exists.

A la hora de hacer Join, se está garantizando que no haga full Scan innecesarios, se están recorriendo las tablas más pequeñas y luego las grandes o se está haciendo, al contrario, que tipo de índices tienen las columnas.

Más que decidir que si es mejor un procedimiento que la vista, es analizar qué tan óptimo está el query.

Podrías publicar las estructuras y el query, y entre todos le analizamos y te damos la opinión.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 31
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Procedimientos en las vistas.. Buena idea?

Publicado por caleb (13 intervenciones) el 10/02/2021 20:08:15
Muchísimas gracias voy a seguir al pie de la letra los consejos. Me gustaría publicar los scripts pero lo estoy trabajando en DB2.
Pero supongo que el explain plan se maneja igual en cualquier SGBD por ende aqui lo adjunto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
RETURN                                                                                    0,1 %     3703141.5            6.093957758976E12 2120919.0          3700469.25           3703141.5             6.093957758976E12 2120919.0          0.0        0.0              2166191.0          0.0               0.0
  HSJOIN                                                                                  0,1 %     3700469.25           6.070548299776E12 2120919.0          3700469.25           3700469.25            6.070548299776E12 2120919.0          0.0        0.0              2166191.0          0.0               0.0               5.260498E7            87
    HSJOIN                                                                                0,1 %     3697020.25           6.04946300928E12  2120544.75         3697020.25           3697020.25            6.04946300928E12  2120544.75         0.0        0.0              2166191.0          0.0               0.0               5.260498E7            82
      HSJOIN                                                                              0,1 %     3693338.25           6.0283420672E12   2120120.5          3693338.25           3693338.25            6.0283420672E12   2120120.5          0.0        0.0              2166191.0          0.0               0.0               5.260498E7            82
        HSJOIN                                                                            0,1 %     3690828.25           6.008544428032E12 2120020.75         3690828.25           3690828.25            6.008544428032E12 2120020.75         0.0        0.0              2166191.0          0.0               0.0               5.260498E7            82
          HSJOIN                                                                          0,6 %     3687212.75           5.979099889664E12 2119844.0          3687212.75           3687212.75            5.979099889664E12 2119844.0          0.0        0.0              2166191.0          0.0               0.0               5.260498E7            81
            DB2ADMIN.ALLOCATION  TBSCAN                                                   13,1 %    484149.75            5.9151982592E10   411328.0           7.868537425994873    6462.25               5.6611987456E10   0.0                0.0        0.0              411328.0           0.0               0.0               569620.625            7
            NLJOIN                                                                        32,5 %    3182115.0            5.736435286016E12 1708516.125        1977338.375          2531330.5             5.736110227456E12 1612998.625        0.0        0.0              1338259.5          0.0               0.0               5.260498E7            76
              HSJOIN                                                                      0,1 %     1977310.125          8.82661851136E11  1612998.625        1977310.125          1977310.125           8.82661851136E11  1612998.625        0.0        0.0              1242742.0          0.0               0.0               5.260498E7            70
                HSJOIN                                                                    0,1 %     1974815.0            8.62993645568E11  1612898.875        1974815.0            1974815.0             8.62993645568E11  1612898.875        0.0        0.0              1242742.0          0.0               0.0               5.260498E7            70
                  HSJOIN                                                                  0,1 %     1971054.875          8.30750654464E11  1612821.875        1971054.875          1971054.875           8.30750654464E11  1612821.875        0.0        0.0              1242742.0          0.0               0.0               5.260498E7            70
                    HSJOIN                                                                0,1 %     1968559.75           8.11082448896E11  1612722.125        1968559.75           1968559.75            8.11082448896E11  1612722.125        0.0        0.0              1242742.0          0.0               0.0               5.260498E7            70
                      HSJOIN                                                              0,1 %     1964799.625          7.7883932672E11   1612645.125        1964799.625          1964799.625           7.7883932672E11   1612645.125        0.0        0.0              1242742.0          0.0               0.0               5.260498E7            70
                        HSJOIN                                                            0,1 %     1961954.75           7.53977851904E11  1612644.125        1961954.75           1961954.75            7.53977851904E11  1612644.125        0.0        0.0              1242742.0          0.0               0.0               4.508998E7            69
                          HSJOIN                                                          0,1 %     1959184.625          7.29709805568E11  1612644.125        1959184.625          1959184.625           7.29709805568E11  1612644.125        0.0        0.0              1242742.0          0.0               0.0               4.508998E7            68
                            HSJOIN                                                        0,1 %     1956370.75           7.05306034176E11  1612640.125        1956370.75           1956370.75            7.05306034176E11  1612640.125        0.0        0.0              1242742.0          0.0               0.0               4.508998E7            67
                              HSJOIN                                                      0,1 %     1952489.875          6.8688347136E11   1611985.75         1952489.875          1952489.875           6.8688347136E11   1611985.75         0.0        0.0              1242742.0          0.0               0.0               4.508998E7            67
                                HSJOIN                                                    0,1 %     1949142.125          6.68690153472E11  1611561.5          1949142.125          1949142.125           6.68690153472E11  1611561.5          0.0        0.0              1242742.0          0.0               0.0               4.508998E7            66
                                  HSJOIN                                                  0,1 %     1945794.375          6.50496835584E11  1611137.25         1945794.375          1945794.375           6.50496835584E11  1611137.25         0.0        0.0              1242742.0          0.0               0.0               4.508998E7            65
                                    HSJOIN                                                0,4 %     1941913.5            6.32074272768E11  1610482.875        1941913.5            1941913.5             6.32074272768E11  1610482.875        0.0        0.0              1242742.0          0.0               0.0               4.508998E7            64
                                      DB2ADMIN.ELEMENTSINSPECTION  TBSCAN                 1,5 %     55895.8984375        5.37860352E9      47629.0            7.050971984863281    580.38916015625       5.08444928E9      0.0                0.0        0.0              47629.0            0.0               0.0               2952641.0             8
                                      HSJOIN                                              0,1 %     1869942.875          4.85874204672E11  1562853.875        1869942.875          1869942.875           4.85874204672E11  1562853.875        0.0        0.0              1193252.0          0.0               0.0               4.508998E7            62
                                        HSJOIN                                            0,4 %     1867595.25           4.65368776704E11  1562852.875        1867595.25           1867595.25            4.65368776704E11  1562852.875        0.0        0.0              1193252.0          0.0               0.0               4.508998E7            61
                                          DB2ADMIN.ELEMENTS  TBSCAN                       3,5 %     130808.8203125       8.973927424E9     111820.0           7.050971984863281    945.5481567382812     8.283393536E9     0.0                0.0        0.0              111820.0           0.0               0.0               4810332.0             5
                                          HSJOIN                                          0,1 %     1721600.75           3.23362422784E11  1451032.875        1721600.75           1721600.75            3.23362422784E11  1451032.875        0.0        0.0              908638.0           0.0               0.0               4.508998E7            56
                                            HSJOIN                                        0,6 %     1719258.25           3.02902083584E11  1451031.875        1719258.25           1719258.25            3.02902083584E11  1451031.875        0.0        0.0              908638.0           0.0               0.0               4.508998E7            55
                                              DB2ADMIN.PINIFULLITEMKEYDECODER2  IXSCAN    0,2 %     7065.65478515625     3.1299936E8       5576.88916015625   13.617528915405273   31.542301177978516    2.76323616E8      0.0                0.0        0.0              5577.0             0.0               0.0               151242.0              14
                                              HSJOIN                                      0,1 %     1689964.25           1.07859656704E11  1445455.0          1689964.25           1689964.25            1.07859656704E11  1445455.0          0.0        0.0              1445452.0          0.0               0.0               4.508998E7            54
                                                DB2ADMIN.STOCKTRANSACTION  TBSCAN         45,6 %    1687513.0            8.6570663936E10   1445452.0          7.050984859466553    8863.1591796875       7.7644947456E10   0.0                0.0        0.0              1445452.0          0.0               0.0               4.508998E7            53
                                                DB2ADMIN.STOCKTRANSACTIONTEMPLATE  TBSCAN 0,0 %     21.16379165649414    252237.0          3.0                7.050971984863281    0.02004973776638508   175644.0          0.0                0.0        0.0              3.0                0.0               0.0               101.0                 3
                                            DB2ADMIN.QUALITYREASON  TBSCAN                0,0 %     7.051954746246338    60925.0           1.0                7.050971984863281    0.0011793962912634015 10332.0           0.0                0.0        0.0              1.0                0.0               0.0               5.0                   3
                                        DB2ADMIN.ELEMENTSTATUS  TBSCAN                    0,0 %     7.053330421447754    72979.0           1.0                7.050971984863281    0.002555358689278364  22386.0           0.0                0.0        0.0              1.0                0.0               0.0               12.0                  3
                                    DB2ADMIN.IDX_ADSTO_251116  IXSCAN                     0,0 %     1819.402587890625    3.62745888E8      654.4337768554688  27.232633590698242   40.785926818847656    3.573016E8        0.0                0.0        0.0              654.90380859375    0.0               0.0               179024.25             2
                                  DB2ADMIN.IDXADSTOR_15FE  IXSCAN                         0,0 %     1299.9139404296875   2.52802944E8      424.2718505859375  27.231971740722656   28.437259674072266    2.4912216E8       0.0                0.0        0.0              424.8741455078125  0.0               0.0               102054.3046875        2
                                DB2ADMIN.IDXADSTOR_15FE  IXSCAN                           0,0 %     1299.9139404296875   2.52802944E8      424.2718505859375  27.231971740722656   28.437259674072266    2.4912216E8       0.0                0.0        0.0              424.8741455078125  0.0               0.0               102054.3046875        2
                              DB2ADMIN.IDX_ADSTO_251116  IXSCAN                           0,0 %     1819.402587890625    3.62745888E8      654.4337768554688  27.232633590698242   40.785926818847656    3.573016E8        0.0                0.0        0.0              654.90380859375    0.0               0.0               179024.25             2
                            DB2ADMIN.COUNTER  TBSCAN                                      0,0 %     28.24762535095215    592417.0          4.0                7.050971984863281    0.05739728733897209   502824.0          0.0                0.0        0.0              4.0                0.0               0.0               291.0                 3
                          DB2ADMIN.PINILOGICALWAREHOUSE  IXSCAN                           0,0 %     0.029314139857888222 256804.0          0.0                0.004561199806630611 0.025266271084547043  221343.0          0.0                0.0        0.0              1.0                0.0               0.0               126.0                 3
                        DB2ADMIN.PHYSICALWAREHOUSE  TBSCAN                                0,0 %     7.052347660064697    64369.0           1.0                7.050971984863281    0.001572528388351202  13776.0           0.0                0.0        0.0              1.0                0.0               0.0               7.0                   3
                      DB2ADMIN.CUSTOMERSUPPLIERDATA  TBSCAN                               0,0 %     81.57244110107422    1.7542214E7       77.0               6.890971660614014    1.9430553913116455    1.702197E7        0.0                0.0        0.0              77.0               0.0               0.0               9884.0                4
                    DB2ADMIN.IDX_BPT_251116  IXSCAN                                       0,0 %     252.01837158203125   1.6955896E7       99.78571319580078  6.811045169830322    1.8396960496902466    1.6116499E7       0.0                0.0        0.0              100.0              0.0               0.0               9362.0                2
                  DB2ADMIN.CUSTOMERSUPPLIERDATA  TBSCAN                                   0,0 %     81.57244110107422    1.7542214E7       77.0               6.890971660614014    1.9430553913116455    1.702197E7        0.0                0.0        0.0              77.0               0.0               0.0               9884.0                4
                DB2ADMIN.IDX_BPT_251116  IXSCAN                                           0,0 %     252.01837158203125   1.6955896E7       99.78571319580078  6.811045169830322    1.8396960496902466    1.6116499E7       0.0                0.0        0.0              100.0              0.0               0.0               9362.0                2
              NLJOIN                                                                      0,0 %     28.221038818359375   205587.328125     4.138875961303711  28.221038818359375   14.599691390991211    99065.328125      2.138876438140869  0.0        0.0              95517.515625       0.0               0.0               3.083673594250769E-11 6
                GRPBY                                                                     0,0 %     21.35689353942871    99240.1484375     3.1320886611938477 21.356609344482422   7.739877700805664     37779.15234375    1.1320887804031372 0.0        0.0              32456.318359375    0.0               0.0               1.0                   1
                  DB2ADMIN.ALLOCATION  FETCH                                              0,0 %     21.35686492919922    98990.1171875     3.1320886611938477 21.35658073425293    7.739849090576172     37529.125         1.1320887804031372 0.0        0.0              32456.318359375    0.0               0.0               1.0782754543470219E-4 1
                    DB2ADMIN.ALLOCATION7  IXSCAN                                          0,0 %     20.425973892211914   96135.359375      3.0                20.425704956054688   6.808958053588867     34674.359375      1.0                0.0        0.0              32456.220703125    0.0               0.0               0.13208875060081482   2
                DB2ADMIN.ALLOCATION  FETCH                                                0,0 %     13.670243263244629   108857.1796875    2.0067875385284424 13.669866561889648   6.859712600708008     60396.17578125    1.0067875385284424 0.0        0.0              63061.1953125      0.0               0.0               3.083673594250769E-11 6
                  DB2ADMIN.PINIALLOCATION5  IXSCAN                                        0,0 %     13.622309684753418   107847.3046875    2.0                13.621932983398438   6.811779022216797     59386.3046875     1.0                0.0        0.0              39327.0            0.0               0.0               0.00678755110129714   5
          DB2ADMIN.ORDERPARTNER  FETCH                                                    0,0 %     258.1794738769531    3.3809148E7       176.71835327148438 97.33500671386719    2.740597724914551     2.400877E7        0.0                0.0        0.0              177.62213134765625 0.0               0.0               6986.0                4
            RIDSCN                                                                        0,0 %     90.28851318359375    2.3430144E7       34.042724609375    90.28836822509766    1.6599476337432861    1.4541829E7       0.0                0.0        0.0              34.946495056152344 0.0               0.0               6986.0                1
              SORT                                                                        0,0 %     90.28836822509766    2.3428856E7       34.042724609375    90.28836822509766    1.4604095220565796    1.2793792E7       0.0                0.0        0.0              34.946495056152344 0.0               0.0               6986.0                1
                DB2ADMIN.PINIORDERPARTNER3  IXSCAN                                        0,0 %     89.11035919189453    1.3108986E7       34.042724609375    6.812403678894043    1.4604095220565796    1.2793792E7       0.0                0.0        0.0              34.946495056152344 0.0               0.0               6986.0                4
        DB2ADMIN.IDX_BPT_251116  IXSCAN                                                   0,0 %     252.01837158203125   1.6955896E7       99.78571319580078  6.811045169830322    1.8396960496902466    1.6116499E7       0.0                0.0        0.0              100.0              0.0               0.0               9362.0                2
      DB2ADMIN.IDXADSTOR_15FE  IXSCAN                                                     0,0 %     1299.9139404296875   2.52802944E8      424.2718200683594  27.231971740722656   28.437255859375       2.49122144E8      0.0                0.0        0.0              424.8741149902344  0.0               0.0               102054.296875         2
    DB2ADMIN.IDX_ADSTO_251116  IXSCAN                                                     0,0 %     1065.755126953125    2.06852624E8      374.2456359863281  27.232633590698242   23.251506805419922    2.03692832E8      0.0                0.0        0.0              374.6617126464844  0.0               0.0               102054.3046875        2


Muchas gracias nuevamente!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Procedimientos en las vistas.. Buena idea?

Publicado por Isaias (4558 intervenciones) el 10/02/2021 20:27:21
No amigo, estas en un grupo de SQL SERVER de Microsoft, no todos los motores de bases de datos son iguales, es cierto que la mayoria tiene el SQL ANSI, pero cada uno maneja verbos de lenguaje diferentes
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar