Etiquetado: ,

  • Este debate tiene 9 respuestas, 5 mensajes y ha sido actualizado por última vez el hace 1 mes por Avatari.alonso.martinez.
Viendo 10 entradas - de la 1 a la 10 (de un total de 10)

Respuestas del foro


  • Jesús Salvador Cristóbal Bueno

    Hola.

    Estoy desarrollando una page que lanza información de una tabla.

    El caso es que para que tarde menos me gustaría poner a dicha tabla una key de ordenación para que tarde menos en cargar y no se como hacerlo.

    La tabla en cuestión es la 1104 Cost Entry.

    Lo he intentado con una extensión de la tabla e incorporando Keys pero siempre me marca errores y no se como hacerlo.

    ¿Podría alguien ponerme un ejemplo de como hacerlo en Visual Code?

    Gracias.

    #5603
    Avatar
    Laura Nicolàs
    Superadministrador
    Laura Nicolàs

    Hola Jesús,

    He hecho algunas pruebas y parece que solo deja añadir claves de los campos creados en la extensión. No permite añadir nuevas claves que contengan campos del estándard.

    Añadir clave

    Quiza puedas plantear el problema en el foro de GitHub y a ver que responden los ingenieros de Microsoft. Quizá sea así «por diseño», o quizá se un bug y lo pueden solucionar de cara a futuros updates.

    Salut!
    Laura Nicolàs

    #5619
    Avatar
    Laura Nicolàs
    Superadministrador
    Laura Nicolàs

    [quote quote=5603]El caso es que para que tarde menos me gustaría poner a dicha tabla una key de ordenación[/quote]

    Desde que solo tenemos SQL (ya no hay servidor nativo), o sea desde 2013, añadir claves puede llegar incluso a ser contraproducente.

    Como norma general, añadiremos claves si necesitamos una ordenación concreta para ejecutar un report, un proceso, o si necesitamos la ordenación para abrir una página.

    Si es solo por temas de rendimiento, el propio motor de SQL es más eficiente si no le forzamos una clave.

    Te recomiendo que le heches un vistazo a este video, donde ponen ejemplos de cuando es mejor crear una clave y cuando no: NAV TechDays 2017 – C/AL, Coding for Performance

    Salut!
    Laura Nicolàs

    #5620
    Jesús Salvador Cristóbal Bueno

    Muchas Gracias. El vídeo me ha aportado buenas ideas que han conseguido orientarme y solucionar mi problema. Gracias.

    #5681
    Avatar
    Jon Ander (IGN)
    Participante
    Jon Ander (IGN)

    Buenas,

    Necesito crear una key en la tabla 1003, para un proceso con una ordenación especifica… como bien dices, solo me deja crear claves con campos estándar…

    Hay alguna otra solución?

    Gracias.

    #7956
    Avatar
    Cristina Nicolàs
    Superadministrador
    Cristina Nicolàs

    Hola Jon,

    Ahora mismo es posible hacer un SETCURRENTKEY con la ordenación que necesites aunque no exista una clave específica en la tabla.

    No sé si funcionará con campos de tabla estándar y campos creados via extensión en el mismo SETCURRENTKEY.

    Yo de momento he utilizado el SETCURRENTKEY desde extensión en un par de ocasiones sin tener una clave en la tabla, pero en un caso sólo necesitaba ordenar por campos del estándar, y en otra ocasión lo hago en una tabla propia.
    No lo he probado poniendo a la vez campos del estándar y campos propios. Pero creo que tendría que funcionar.

    Si haces una prueba ya nos contarás cómo va.

    Un saludo,
    Cristina Nicolàs

    #7960
    Avatar
    Jon Ander (IGN)
    Participante
    Jon Ander (IGN)

    Gracias por la respuesta… pero los calcsums funcionan sin ponerle setcurrentkey?

    #7961
    Avatar
    Cristina Nicolàs
    Superadministrador
    Cristina Nicolàs

    [quote quote=5620]Como norma general, añadiremos claves si necesitamos una ordenación concreta para ejecutar un report, un proceso, o si necesitamos la ordenación para abrir una página.[/quote]

    Ya ni eso. No añadiremos clave.
    En el report, proceso o página en donde necesitamos la ordenación, ponemos un SetCurrentKey (o en la propiedad TableView, o donde corresponda) con los campos por los que queremos ordenar y ya está. No necesitamos la clave.

    Un saludo,
    Cristina Nicolàs

    #7962
    Avatar
    Cristina Nicolàs
    Superadministrador
    Cristina Nicolàs

    [quote quote=7961]Gracias por la respuesta… pero los calcsums funcionan sin ponerle setcurrentkey?[/quote]

    Si, funcionan perfectamente.
    Tengo unos cuantos en mi desarrollo y no tengo claves ni setcurrentkey.

    Un saludo,
    Cristina Nicolàs

    #7963
    Avatar
    i.alonso.martinez
    Participante
    i.alonso.martinez

    Buenas, aunque hace ya tiempo de este post lo he leído y estoy un poco preocupado por el rendimiento en bases de datos grandes en BC15 Y BC16 que estoy migrando ahora,

    Estoy de acuerdo con lo que se comenta de que SQL no necesita tener claves para ordenar y que puedo hacer SETCURRENTKEY desde NAV sin tener clave, y también que el motor de SQL elige las claves mas adecuadas para las consultas, pero si no puedo crear claves con campos estándar en extensiones, si tengo problemas de rendimiento no voy a poder crear en SQL esas claves adecuadas para que el motor las elija, en OnPrem podría crearlas directamente en el SQL pero en la nube que no tengo acceso a la base de datos no es esto posible.

    He revisado información en el foro de GITHUB especialmente esta entrada #730 y parece que la gente plantea muchas dudas y pocas soluciones «Creating Keys for Base Application is Essential #730 »

    Igual alguien aporta algo a esta reflexión.

     

     

     

    #1018235
Viendo 10 entradas - de la 1 a la 10 (de un total de 10)

Debe iniciar sesión para responder a este tema.