Reusing a generated column to avoid over processing

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • brazil.mg.marcus.vinicius.lima

    Reusing a generated column to avoid over processing

    Hi,

    I'm constructing a query that will performs a lot o datetime
    calculumns to generate columns.
    All that operations are dependent of a base calculum that is performed
    on the query and its result is stored in a columna returned.

    I wanna find a way of reusing this generated column, to avoid
    reprocessing that calculumn to perform the other operations, cause
    that query will be used in a critical application, and all saving is
    few.

    Thanks a lot.

  • Roy Harvey (SQL Server MVP)

    #2
    Re: Reusing a generated column to avoid over processing

    One approach is to use a view. Another is to use a derived table. For
    SQL Server 2005 there is a third alternative, a Common Table
    Expression (CTE).

    All three alternatives require writing the query that returns the
    computed column and then using that query in any of the three ways. So
    we could have something like:

    WITH Example AS
    (SELECT A, B, C, <complex expressionas Complex
    FROM X)
    SELECT *
    FROM Example
    WHERE Complex = '20071225'

    Roy Harvey
    Beacon Falls, CT

    On Mon, 22 Oct 2007 06:06:17 -0700, "brazil.mg.marc us.vinicius.lim a"
    <marcvlima@gmai l.comwrote:
    >Hi,
    >
    >I'm constructing a query that will performs a lot o datetime
    >calculumns to generate columns.
    >All that operations are dependent of a base calculum that is performed
    >on the query and its result is stored in a columna returned.
    >
    >I wanna find a way of reusing this generated column, to avoid
    >reprocessing that calculumn to perform the other operations, cause
    >that query will be used in a critical application, and all saving is
    >few.
    >
    >Thanks a lot.

    Comment

    • Roy Harvey (SQL Server MVP)

      #3
      Re: Reusing a generated column to avoid over processing

      >
      >One approach is to use a view. Another is to use a derived table. For
      >SQL Server 2005 there is a third alternative, a Common Table
      >Expression (CTE).
      >>
      >All three alternatives require writing the query that returns the
      >computed column and then using that query in any of the three ways. So
      >we could have something like:
      >>
      >WITH Example AS
      >(SELECT A, B, C, <complex expressionas Complex
      > FROM X)
      >SELECT *
      > FROM Example
      > WHERE Complex = '20071225'
      >I thought to divide in steps the performation of the calculumns.
      >In the first step create a view that execute the basic calculation,
      >and create another views that reuse the alread done work.
      >
      >But its seems to be very strange, cause its not a elegant solution.
      Using views on views is one way to do it, but with the new feature of
      Common Table Expression (CTE) in SQL Server 2005 we can avoid that.
      You can have more than one CTE prefixing a command, and the succeeding
      ones can reference the preceding ones. That means the nesting can all
      be in the one command, much cleaner than views on views.

      Roy Harvey
      Beacon Falls, CT

      Comment

      Working...