Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update FbDataReader.cs #1122

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

BFuerchau
Copy link

Change schema reading
Change GetValues()

Advantage:

  • GetValues() with less checks and calls, performance increase until 20%
  • Rewrite GetSchema/GetSchemaAysnc, single request for all fields, Performance enhancement with less server calls, max FetchSize columns within 1 call, less transactions with additional server calls for begintransaction and committransaction in case of autocommit.

Some more discussion points:

When in the select command are less primary fields selected than the primary key has, the IsPrimary should not be set to true. We have tables with compound primary key with more the 1 field. But not all fields may be selected. So the adapter can't create a correct update- or delete-command.
This can now simple be checked, if all primary fields of the resultfields schema are in the _fields-array.

A similar problem is with IsUnique.

We have tables with more than 1 unique index or constraint, so not all unique fields can be used for update/delete command. To set IsUnique must be checked with index columns query.
When all fields in the array belongs to the same unique index, the IsUnique can be set.
If more fields with IsUnique are selected, IsUnique can not clearly set.
This can be checked only with additional requests for all defined unique indexes, when any column has IsUnique checked.

Change Schemareading
Change GetValues()

Advantage:
GetValues() with less checks and calls, performance increase until 20%
Rewrite GetSchema/GetSchemaAysnc, single request for all fields, Performance less server calls, max FetchSize columns with 1 call, less transactions with additional server calls for begintransaction and committransaction.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant