Products

Solutions

Resources

Partners

Community

Blog

About

QA

Ideas Test

New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

Welcome to the DNN Community Forums, your preferred source of online community support for all things related to DNN.
In order to participate you must be a registered DNNizen

HomeHomeDNN Open Source...DNN Open Source...Module ForumsModule ForumsForm and ListForm and ListUDT performance / load times issueUDT performance / load times issue
Previous
 
Next
New Post
12/18/2011 3:47 AM
 
Hi Stefan

By changing the SQL stored procedure UserDefinedTable_GetRows and passing it the TabModuleID rather than the ModuleID, I can read the specific TabModule filter required for each invocation. I implement filtering in SQL before any data is returned, so only a small filtered data set is returned. Consequently only the filtered result set needs further processing. Using SQL to filter is extremely fast and highly scalable. The only downside is that searching of the entire list is still slow, but this is a requirement that cannot be handled by templates.

I disagree with the philosophy of reading the entire data set into memory before doing look ups, filtering and searching.

I am not sure what an incompatible fork is? A very slight change to the module code would allow anybody to implement filtering in the SQL stored procedure, or it could become part of the standard software

Cheers

Richard
 
New Post
12/18/2011 7:45 AM
 

Richard,

For each new instance of FNL a new ModuleId and a new TabModuleId is created. Each request queries only data for that instance from SQL server, it is filtered by ModuleId . DotNetNuke also offers also the ability to add existing instances. In that case the ModuleId remains but a new TabModuleId is used. FormAndList was designed to share the data in that case. It is a feature. TabModuleId (and the related TabSettings) allows to setup different views, forms and filters for each tab (page) against the same data. 

Filtering on TabModuleId would be counterproductive - as the decision to reuse and share the data was already made. If you don’t want to share data just add a new instance and get a new ModuleId. Use templates to build on top of existing schemas and XSL scripts.

I am aware that filtering on SQL filter is faster. The problem is that not all interesting data for filtering exists. It is not possible to filter for files (Download, Url Image datatype) or dynamic values (look up, calculated column…). Only types like string or numbers would benefit. It would now be simple for us developers adding an additional server-side filter setting. That filter expression would use a different syntax (T-SQL instead of DataSet expressions), would work against a limited set of datatypes and it might introduce new targets for SQL injections. In short,  it would make it much more difficult for the users of the module. FnL is already complicated enough.

Thanks

Stefan


 
New Post
12/18/2011 7:55 AM
 

Richard Brand wrote:
 Where the column is a User look up, for example, the index should be treated as the UserID and a JOIN can be done in the database. This would require just n database queries where n is the number of columns in the user defined table. No cell-level API for lookups or computed fields.

The DotNetNuke Schema is not part of the API and can be changed at any time. A module should never rely on foreign data and treat them as private. It has to go through API, that is the only supported way.

 
New Post
12/19/2011 5:39 AM
 
Richard Brand wrote:

That is deliberate - there is also a requirement to search for all the events attended by a particular user. So there is one 'master' list with 1000 linked (filtered) versions.

I accept that the search over the entire list will be slow with the current data structures but I think they can also be improved.

1000 of linked version is the wrong approach, 1 instance per page would have been much better.
The search requirement could be solved with a custom module or a generic reports module (e.g.  Xml module with SQL Data Source).

 
Previous
 
Next
HomeHomeDNN Open Source...DNN Open Source...Module ForumsModule ForumsForm and ListForm and ListUDT performance / load times issueUDT performance / load times issue


These Forums are dedicated to discussion of DNN Platform and Evoq Solutions.

For the benefit of the community and to protect the integrity of the ecosystem, please observe the following posting guidelines:

  1. No Advertising. This includes promotion of commercial and non-commercial products or services which are not directly related to DNN.
  2. No vendor trolling / poaching. If someone posts about a vendor issue, allow the vendor or other customers to respond. Any post that looks like trolling / poaching will be removed.
  3. Discussion or promotion of DNN Platform product releases under a different brand name are strictly prohibited.
  4. No Flaming or Trolling.
  5. No Profanity, Racism, or Prejudice.
  6. Site Moderators have the final word on approving / removing a thread or post or comment.
  7. English language posting only, please.
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out