Is Null causing access table to go over 2GB and fail
up vote
0
down vote
favorite
I am sending queries from MS Access (office 365) to MS SQL 2016 and I am running into an error where the temp table from the query I am running is causing MS Access to fail once the max size of 2GB is reached.
The odd thing is that this only happens when I query for Is Null
.
This query has been working for a long time and only recently started failing after I updated the underlying data table with the last months working information.
If I search for a value instead of Null
it works just fine.
Any idea on what is causing this?
I was able to to verify that the information from the most recent month is fine and I can pull all the information I loaded in a separate query without triggering the 2GB max size table issue.
SELECT
dbo_FY2018TRD.[ACCOUNT NUMBER],
dbo_FY2018TRD.[ACCOUNT SHORT NAME],
dbo_FY2018TRD.[ACCOUNT NAME],
dbo_FY2018TRD.[ACCOUNT RR],
dbo_FY2018TRD.[ACCOUNT RR NAME],
dbo_FY2018TRD.[ACCOUNT BKR],
dbo_FY2018TRD.[ACCOUNT BKR NAME]
FROM
dbo_FY2018TRD LEFT JOIN FullRRTable ON dbo_FY2018TRD.[ACCOUNT RR] = FullRRTable.[RRCode]
WHERE
(((FullRRTable.RRCode) Is Null));
Explanation from comments: The temp table being used is the generic one MS Access creates. The large table dbo_FY2018TRD
sits in the SQL server but the FullRRTable
sits in Access. I split them up like this because the FullRRTable
I routinely edit to apply labels but the dbo_FY2018TRD
table should never be modified other than to add new records. dbo_FY2018TRD
is 27 million rows by 50 columns, whereas FullRRTable is 35,000 rows by 5 columns.
sql-server ms-access
|
show 7 more comments
up vote
0
down vote
favorite
I am sending queries from MS Access (office 365) to MS SQL 2016 and I am running into an error where the temp table from the query I am running is causing MS Access to fail once the max size of 2GB is reached.
The odd thing is that this only happens when I query for Is Null
.
This query has been working for a long time and only recently started failing after I updated the underlying data table with the last months working information.
If I search for a value instead of Null
it works just fine.
Any idea on what is causing this?
I was able to to verify that the information from the most recent month is fine and I can pull all the information I loaded in a separate query without triggering the 2GB max size table issue.
SELECT
dbo_FY2018TRD.[ACCOUNT NUMBER],
dbo_FY2018TRD.[ACCOUNT SHORT NAME],
dbo_FY2018TRD.[ACCOUNT NAME],
dbo_FY2018TRD.[ACCOUNT RR],
dbo_FY2018TRD.[ACCOUNT RR NAME],
dbo_FY2018TRD.[ACCOUNT BKR],
dbo_FY2018TRD.[ACCOUNT BKR NAME]
FROM
dbo_FY2018TRD LEFT JOIN FullRRTable ON dbo_FY2018TRD.[ACCOUNT RR] = FullRRTable.[RRCode]
WHERE
(((FullRRTable.RRCode) Is Null));
Explanation from comments: The temp table being used is the generic one MS Access creates. The large table dbo_FY2018TRD
sits in the SQL server but the FullRRTable
sits in Access. I split them up like this because the FullRRTable
I routinely edit to apply labels but the dbo_FY2018TRD
table should never be modified other than to add new records. dbo_FY2018TRD
is 27 million rows by 50 columns, whereas FullRRTable is 35,000 rows by 5 columns.
sql-server ms-access
I guess the query simply returns too much data. As an experiment you could for example try Is NullAND
some other filter to reduce the dataset and see if that works. It seems like you may have run out scale in MS Access
– Nick.McDermaid
Nov 11 at 23:42
Which table was just updated??? dbo_FY2018TRD OR FullRRTable ?? Can you run COUNT(*) on each table to see how many rows have Is Null of the RRCode? Have the table(s) always had that number of Nulls?
– donPablo
Nov 11 at 23:53
Table that was updated was dbo_FY2018TRD - basically every month this table get new records and for the vast majority of the records I already have the RRCode in the the FullRRTable. The purpose of the Is Null is to find which RRCode value I am missing from the FullRRTable as a result of the new data loaded into dbo_FY2018TRD.
– TorontoDan
Nov 11 at 23:57
There is nothing special aboutIs Null
in a query, so this definitely has to do with your tables and what data is being returned. Certainly the cause must be with other processes (like the source of the monthly update) that cannot be guessed at by anyone here. You replied to donPablo's questions, but the most important thing you could do is what was already suggested... run something likeSELECT Count(*) FROM dbo_FY2018TRD LEFT JOIN FullRRTable ON dbo_FY2018TRD.[ACCOUNT RR] = FullRRTable.[RRCode] WHERE (FullRRTable.RRCode Is Null)
to get summary data before tackling the details.
– C Perkins
Nov 12 at 4:15
You could try if anNOT EXISTS
works better.
– HoneyBadger
Nov 12 at 7:49
|
show 7 more comments
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I am sending queries from MS Access (office 365) to MS SQL 2016 and I am running into an error where the temp table from the query I am running is causing MS Access to fail once the max size of 2GB is reached.
The odd thing is that this only happens when I query for Is Null
.
This query has been working for a long time and only recently started failing after I updated the underlying data table with the last months working information.
If I search for a value instead of Null
it works just fine.
Any idea on what is causing this?
I was able to to verify that the information from the most recent month is fine and I can pull all the information I loaded in a separate query without triggering the 2GB max size table issue.
SELECT
dbo_FY2018TRD.[ACCOUNT NUMBER],
dbo_FY2018TRD.[ACCOUNT SHORT NAME],
dbo_FY2018TRD.[ACCOUNT NAME],
dbo_FY2018TRD.[ACCOUNT RR],
dbo_FY2018TRD.[ACCOUNT RR NAME],
dbo_FY2018TRD.[ACCOUNT BKR],
dbo_FY2018TRD.[ACCOUNT BKR NAME]
FROM
dbo_FY2018TRD LEFT JOIN FullRRTable ON dbo_FY2018TRD.[ACCOUNT RR] = FullRRTable.[RRCode]
WHERE
(((FullRRTable.RRCode) Is Null));
Explanation from comments: The temp table being used is the generic one MS Access creates. The large table dbo_FY2018TRD
sits in the SQL server but the FullRRTable
sits in Access. I split them up like this because the FullRRTable
I routinely edit to apply labels but the dbo_FY2018TRD
table should never be modified other than to add new records. dbo_FY2018TRD
is 27 million rows by 50 columns, whereas FullRRTable is 35,000 rows by 5 columns.
sql-server ms-access
I am sending queries from MS Access (office 365) to MS SQL 2016 and I am running into an error where the temp table from the query I am running is causing MS Access to fail once the max size of 2GB is reached.
The odd thing is that this only happens when I query for Is Null
.
This query has been working for a long time and only recently started failing after I updated the underlying data table with the last months working information.
If I search for a value instead of Null
it works just fine.
Any idea on what is causing this?
I was able to to verify that the information from the most recent month is fine and I can pull all the information I loaded in a separate query without triggering the 2GB max size table issue.
SELECT
dbo_FY2018TRD.[ACCOUNT NUMBER],
dbo_FY2018TRD.[ACCOUNT SHORT NAME],
dbo_FY2018TRD.[ACCOUNT NAME],
dbo_FY2018TRD.[ACCOUNT RR],
dbo_FY2018TRD.[ACCOUNT RR NAME],
dbo_FY2018TRD.[ACCOUNT BKR],
dbo_FY2018TRD.[ACCOUNT BKR NAME]
FROM
dbo_FY2018TRD LEFT JOIN FullRRTable ON dbo_FY2018TRD.[ACCOUNT RR] = FullRRTable.[RRCode]
WHERE
(((FullRRTable.RRCode) Is Null));
Explanation from comments: The temp table being used is the generic one MS Access creates. The large table dbo_FY2018TRD
sits in the SQL server but the FullRRTable
sits in Access. I split them up like this because the FullRRTable
I routinely edit to apply labels but the dbo_FY2018TRD
table should never be modified other than to add new records. dbo_FY2018TRD
is 27 million rows by 50 columns, whereas FullRRTable is 35,000 rows by 5 columns.
sql-server ms-access
sql-server ms-access
edited Nov 14 at 12:45
C Perkins
1,81521321
1,81521321
asked Nov 11 at 23:06
TorontoDan
31
31
I guess the query simply returns too much data. As an experiment you could for example try Is NullAND
some other filter to reduce the dataset and see if that works. It seems like you may have run out scale in MS Access
– Nick.McDermaid
Nov 11 at 23:42
Which table was just updated??? dbo_FY2018TRD OR FullRRTable ?? Can you run COUNT(*) on each table to see how many rows have Is Null of the RRCode? Have the table(s) always had that number of Nulls?
– donPablo
Nov 11 at 23:53
Table that was updated was dbo_FY2018TRD - basically every month this table get new records and for the vast majority of the records I already have the RRCode in the the FullRRTable. The purpose of the Is Null is to find which RRCode value I am missing from the FullRRTable as a result of the new data loaded into dbo_FY2018TRD.
– TorontoDan
Nov 11 at 23:57
There is nothing special aboutIs Null
in a query, so this definitely has to do with your tables and what data is being returned. Certainly the cause must be with other processes (like the source of the monthly update) that cannot be guessed at by anyone here. You replied to donPablo's questions, but the most important thing you could do is what was already suggested... run something likeSELECT Count(*) FROM dbo_FY2018TRD LEFT JOIN FullRRTable ON dbo_FY2018TRD.[ACCOUNT RR] = FullRRTable.[RRCode] WHERE (FullRRTable.RRCode Is Null)
to get summary data before tackling the details.
– C Perkins
Nov 12 at 4:15
You could try if anNOT EXISTS
works better.
– HoneyBadger
Nov 12 at 7:49
|
show 7 more comments
I guess the query simply returns too much data. As an experiment you could for example try Is NullAND
some other filter to reduce the dataset and see if that works. It seems like you may have run out scale in MS Access
– Nick.McDermaid
Nov 11 at 23:42
Which table was just updated??? dbo_FY2018TRD OR FullRRTable ?? Can you run COUNT(*) on each table to see how many rows have Is Null of the RRCode? Have the table(s) always had that number of Nulls?
– donPablo
Nov 11 at 23:53
Table that was updated was dbo_FY2018TRD - basically every month this table get new records and for the vast majority of the records I already have the RRCode in the the FullRRTable. The purpose of the Is Null is to find which RRCode value I am missing from the FullRRTable as a result of the new data loaded into dbo_FY2018TRD.
– TorontoDan
Nov 11 at 23:57
There is nothing special aboutIs Null
in a query, so this definitely has to do with your tables and what data is being returned. Certainly the cause must be with other processes (like the source of the monthly update) that cannot be guessed at by anyone here. You replied to donPablo's questions, but the most important thing you could do is what was already suggested... run something likeSELECT Count(*) FROM dbo_FY2018TRD LEFT JOIN FullRRTable ON dbo_FY2018TRD.[ACCOUNT RR] = FullRRTable.[RRCode] WHERE (FullRRTable.RRCode Is Null)
to get summary data before tackling the details.
– C Perkins
Nov 12 at 4:15
You could try if anNOT EXISTS
works better.
– HoneyBadger
Nov 12 at 7:49
I guess the query simply returns too much data. As an experiment you could for example try Is Null
AND
some other filter to reduce the dataset and see if that works. It seems like you may have run out scale in MS Access– Nick.McDermaid
Nov 11 at 23:42
I guess the query simply returns too much data. As an experiment you could for example try Is Null
AND
some other filter to reduce the dataset and see if that works. It seems like you may have run out scale in MS Access– Nick.McDermaid
Nov 11 at 23:42
Which table was just updated??? dbo_FY2018TRD OR FullRRTable ?? Can you run COUNT(*) on each table to see how many rows have Is Null of the RRCode? Have the table(s) always had that number of Nulls?
– donPablo
Nov 11 at 23:53
Which table was just updated??? dbo_FY2018TRD OR FullRRTable ?? Can you run COUNT(*) on each table to see how many rows have Is Null of the RRCode? Have the table(s) always had that number of Nulls?
– donPablo
Nov 11 at 23:53
Table that was updated was dbo_FY2018TRD - basically every month this table get new records and for the vast majority of the records I already have the RRCode in the the FullRRTable. The purpose of the Is Null is to find which RRCode value I am missing from the FullRRTable as a result of the new data loaded into dbo_FY2018TRD.
– TorontoDan
Nov 11 at 23:57
Table that was updated was dbo_FY2018TRD - basically every month this table get new records and for the vast majority of the records I already have the RRCode in the the FullRRTable. The purpose of the Is Null is to find which RRCode value I am missing from the FullRRTable as a result of the new data loaded into dbo_FY2018TRD.
– TorontoDan
Nov 11 at 23:57
There is nothing special about
Is Null
in a query, so this definitely has to do with your tables and what data is being returned. Certainly the cause must be with other processes (like the source of the monthly update) that cannot be guessed at by anyone here. You replied to donPablo's questions, but the most important thing you could do is what was already suggested... run something like SELECT Count(*) FROM dbo_FY2018TRD LEFT JOIN FullRRTable ON dbo_FY2018TRD.[ACCOUNT RR] = FullRRTable.[RRCode] WHERE (FullRRTable.RRCode Is Null)
to get summary data before tackling the details.– C Perkins
Nov 12 at 4:15
There is nothing special about
Is Null
in a query, so this definitely has to do with your tables and what data is being returned. Certainly the cause must be with other processes (like the source of the monthly update) that cannot be guessed at by anyone here. You replied to donPablo's questions, but the most important thing you could do is what was already suggested... run something like SELECT Count(*) FROM dbo_FY2018TRD LEFT JOIN FullRRTable ON dbo_FY2018TRD.[ACCOUNT RR] = FullRRTable.[RRCode] WHERE (FullRRTable.RRCode Is Null)
to get summary data before tackling the details.– C Perkins
Nov 12 at 4:15
You could try if an
NOT EXISTS
works better.– HoneyBadger
Nov 12 at 7:49
You could try if an
NOT EXISTS
works better.– HoneyBadger
Nov 12 at 7:49
|
show 7 more comments
1 Answer
1
active
oldest
votes
up vote
1
down vote
Comments reveal that the smaller "temp" table FullRRTable
is in the Access database and the table dbo_FY2018TRD
is on the SQL Server. Because the query involves tables in both locations, the full query cannot be sent to the server as a pass-through query.
For a mixed query, Access must essentially request all rows from the Server table dbo_FY2018TRD
since it must perform the join locally without the benefit of server indices, etc. There may be no optimization (or perhaps only one-sided using indices for the Access table), so Access will perform a row-by-row comparison for all record combinations. If you have the ability to inspect record requests from the server, you may also observe that Access requests the same row multiple times.
2 GB divided by 27 million records of the dbo_FY2018TRD
table is around 74 bytes per row, making the limit definitely reachable. Divide that into 7 fields of the original query and it's about 10 bytes per field--not including packaging bytes--also a reasonable estimate.
That answers the basic question "Any idea on what is causing this?". As for a solution, I would consider downloading only the single key field dbo_FY2018TRD.[ACCOUNT RR]
that you're using in the join to a "temporary" table in Access, then run the comparison query against that table. The results of that query could then be used to retrieve only the mismatched rows.
Search for "access linked table index" or "access linked table mixed query" for more varied suggestions, although you have to dig to find bits of useful info.
1
Another possibility that I have used is to upload the smaller table from Access to a @temptable in sqlserver, and then allow the join to be performed there. It is only one column, and its rowcount is lower that the sql table.
– donPablo
Nov 14 at 18:02
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53254139%2fis-null-causing-access-table-to-go-over-2gb-and-fail%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
Comments reveal that the smaller "temp" table FullRRTable
is in the Access database and the table dbo_FY2018TRD
is on the SQL Server. Because the query involves tables in both locations, the full query cannot be sent to the server as a pass-through query.
For a mixed query, Access must essentially request all rows from the Server table dbo_FY2018TRD
since it must perform the join locally without the benefit of server indices, etc. There may be no optimization (or perhaps only one-sided using indices for the Access table), so Access will perform a row-by-row comparison for all record combinations. If you have the ability to inspect record requests from the server, you may also observe that Access requests the same row multiple times.
2 GB divided by 27 million records of the dbo_FY2018TRD
table is around 74 bytes per row, making the limit definitely reachable. Divide that into 7 fields of the original query and it's about 10 bytes per field--not including packaging bytes--also a reasonable estimate.
That answers the basic question "Any idea on what is causing this?". As for a solution, I would consider downloading only the single key field dbo_FY2018TRD.[ACCOUNT RR]
that you're using in the join to a "temporary" table in Access, then run the comparison query against that table. The results of that query could then be used to retrieve only the mismatched rows.
Search for "access linked table index" or "access linked table mixed query" for more varied suggestions, although you have to dig to find bits of useful info.
1
Another possibility that I have used is to upload the smaller table from Access to a @temptable in sqlserver, and then allow the join to be performed there. It is only one column, and its rowcount is lower that the sql table.
– donPablo
Nov 14 at 18:02
add a comment |
up vote
1
down vote
Comments reveal that the smaller "temp" table FullRRTable
is in the Access database and the table dbo_FY2018TRD
is on the SQL Server. Because the query involves tables in both locations, the full query cannot be sent to the server as a pass-through query.
For a mixed query, Access must essentially request all rows from the Server table dbo_FY2018TRD
since it must perform the join locally without the benefit of server indices, etc. There may be no optimization (or perhaps only one-sided using indices for the Access table), so Access will perform a row-by-row comparison for all record combinations. If you have the ability to inspect record requests from the server, you may also observe that Access requests the same row multiple times.
2 GB divided by 27 million records of the dbo_FY2018TRD
table is around 74 bytes per row, making the limit definitely reachable. Divide that into 7 fields of the original query and it's about 10 bytes per field--not including packaging bytes--also a reasonable estimate.
That answers the basic question "Any idea on what is causing this?". As for a solution, I would consider downloading only the single key field dbo_FY2018TRD.[ACCOUNT RR]
that you're using in the join to a "temporary" table in Access, then run the comparison query against that table. The results of that query could then be used to retrieve only the mismatched rows.
Search for "access linked table index" or "access linked table mixed query" for more varied suggestions, although you have to dig to find bits of useful info.
1
Another possibility that I have used is to upload the smaller table from Access to a @temptable in sqlserver, and then allow the join to be performed there. It is only one column, and its rowcount is lower that the sql table.
– donPablo
Nov 14 at 18:02
add a comment |
up vote
1
down vote
up vote
1
down vote
Comments reveal that the smaller "temp" table FullRRTable
is in the Access database and the table dbo_FY2018TRD
is on the SQL Server. Because the query involves tables in both locations, the full query cannot be sent to the server as a pass-through query.
For a mixed query, Access must essentially request all rows from the Server table dbo_FY2018TRD
since it must perform the join locally without the benefit of server indices, etc. There may be no optimization (or perhaps only one-sided using indices for the Access table), so Access will perform a row-by-row comparison for all record combinations. If you have the ability to inspect record requests from the server, you may also observe that Access requests the same row multiple times.
2 GB divided by 27 million records of the dbo_FY2018TRD
table is around 74 bytes per row, making the limit definitely reachable. Divide that into 7 fields of the original query and it's about 10 bytes per field--not including packaging bytes--also a reasonable estimate.
That answers the basic question "Any idea on what is causing this?". As for a solution, I would consider downloading only the single key field dbo_FY2018TRD.[ACCOUNT RR]
that you're using in the join to a "temporary" table in Access, then run the comparison query against that table. The results of that query could then be used to retrieve only the mismatched rows.
Search for "access linked table index" or "access linked table mixed query" for more varied suggestions, although you have to dig to find bits of useful info.
Comments reveal that the smaller "temp" table FullRRTable
is in the Access database and the table dbo_FY2018TRD
is on the SQL Server. Because the query involves tables in both locations, the full query cannot be sent to the server as a pass-through query.
For a mixed query, Access must essentially request all rows from the Server table dbo_FY2018TRD
since it must perform the join locally without the benefit of server indices, etc. There may be no optimization (or perhaps only one-sided using indices for the Access table), so Access will perform a row-by-row comparison for all record combinations. If you have the ability to inspect record requests from the server, you may also observe that Access requests the same row multiple times.
2 GB divided by 27 million records of the dbo_FY2018TRD
table is around 74 bytes per row, making the limit definitely reachable. Divide that into 7 fields of the original query and it's about 10 bytes per field--not including packaging bytes--also a reasonable estimate.
That answers the basic question "Any idea on what is causing this?". As for a solution, I would consider downloading only the single key field dbo_FY2018TRD.[ACCOUNT RR]
that you're using in the join to a "temporary" table in Access, then run the comparison query against that table. The results of that query could then be used to retrieve only the mismatched rows.
Search for "access linked table index" or "access linked table mixed query" for more varied suggestions, although you have to dig to find bits of useful info.
answered Nov 14 at 0:11
C Perkins
1,81521321
1,81521321
1
Another possibility that I have used is to upload the smaller table from Access to a @temptable in sqlserver, and then allow the join to be performed there. It is only one column, and its rowcount is lower that the sql table.
– donPablo
Nov 14 at 18:02
add a comment |
1
Another possibility that I have used is to upload the smaller table from Access to a @temptable in sqlserver, and then allow the join to be performed there. It is only one column, and its rowcount is lower that the sql table.
– donPablo
Nov 14 at 18:02
1
1
Another possibility that I have used is to upload the smaller table from Access to a @temptable in sqlserver, and then allow the join to be performed there. It is only one column, and its rowcount is lower that the sql table.
– donPablo
Nov 14 at 18:02
Another possibility that I have used is to upload the smaller table from Access to a @temptable in sqlserver, and then allow the join to be performed there. It is only one column, and its rowcount is lower that the sql table.
– donPablo
Nov 14 at 18:02
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53254139%2fis-null-causing-access-table-to-go-over-2gb-and-fail%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
I guess the query simply returns too much data. As an experiment you could for example try Is Null
AND
some other filter to reduce the dataset and see if that works. It seems like you may have run out scale in MS Access– Nick.McDermaid
Nov 11 at 23:42
Which table was just updated??? dbo_FY2018TRD OR FullRRTable ?? Can you run COUNT(*) on each table to see how many rows have Is Null of the RRCode? Have the table(s) always had that number of Nulls?
– donPablo
Nov 11 at 23:53
Table that was updated was dbo_FY2018TRD - basically every month this table get new records and for the vast majority of the records I already have the RRCode in the the FullRRTable. The purpose of the Is Null is to find which RRCode value I am missing from the FullRRTable as a result of the new data loaded into dbo_FY2018TRD.
– TorontoDan
Nov 11 at 23:57
There is nothing special about
Is Null
in a query, so this definitely has to do with your tables and what data is being returned. Certainly the cause must be with other processes (like the source of the monthly update) that cannot be guessed at by anyone here. You replied to donPablo's questions, but the most important thing you could do is what was already suggested... run something likeSELECT Count(*) FROM dbo_FY2018TRD LEFT JOIN FullRRTable ON dbo_FY2018TRD.[ACCOUNT RR] = FullRRTable.[RRCode] WHERE (FullRRTable.RRCode Is Null)
to get summary data before tackling the details.– C Perkins
Nov 12 at 4:15
You could try if an
NOT EXISTS
works better.– HoneyBadger
Nov 12 at 7:49