タグ付けされた質問 「limits」

4
テーブルの最大行数を1に制限する方法
SQL Serverデータベースに構成テーブルがあり、このテーブルには1行しかありません。将来の開発者がこれを理解できるように、複数行のデータが追加されないようにしたいと思います。以下のように、このためにトリガーを使用することを選択しました... ALTER TRIGGER OnlyOneConfigRow ON [dbo].[Configuration] INSTEAD OF INSERT AS BEGIN DECLARE @HasZeroRows BIT; SELECT @HasZeroRows = CASE WHEN COUNT (Id) = 0 THEN 1 ELSE 0 END FROM [dbo].[Configuration]; IF EXISTS(SELECT [Id] FROM inserted) AND @HasZeroRows = 0 BEGIN RAISERROR ('You should not add more than one row …

5
WHERE句の100,000を超えるエントリが原因のSQL Serverエラー8632
私の問題(あるいは少なくとも、エラーメッセージは)非常によく似ているクエリプロセッサの内部リソースを使い果たした-非常に長いSQLクエリを。 私の顧客は、正確に100,000エントリのwhere-clauseを含むSQL select-queryを使用しています。 クエリはエラー8632とエラーメッセージで失敗します 内部エラー:式サービスの制限に達しました。クエリで潜在的に複雑な式を探し、それらを単純化してみてください。 このエラーメッセージが正確に100,000エントリでスローされることは非常に奇妙であるため、これが設定可能な値であるかどうか疑問に思います。これは事実ですか?そうであれば、この値をより高い値に増やすにはどうすればよいですか? 上のMSDN、そこにクエリを再書き換えるための提案ですが、私はこの問題を回避したいと思います。 一方、私が話しているエントリのリストには自然数が含まれていることがわかりました。それらのかなりの数は連続しているように見えます( 13,15,16,17,18,19,20)。 これにより、SQLのwhere句は次のようになります。 where entry in (1,2,3,6,7,8,9,10,12,13,15,16,17,18,19,20) これを次のように変換できます。 where (entry between 1 and 3) OR (entry between 6 and 10) OR (entry between 12 and 13) OR (entry between 15 and 20) これは次の方法で短縮できますか? where entry in (1,...,3,6,...,10,12,13,15,...,20) ...または同様のものですか?(私はそれがロングショットであることを知っていますが、それはソフトウェアの更新をより簡単で読みやすくするでしょう) 参考までに、where-clauseのデータは計算の結果であり、別のテーブルで行われます。最初にそのテーブルのエントリが読み取られ、最初にフィルタリングされ、次に追加の処理が行われます(使用することは不可能です) SQL)、その追加処理の結果はより多くのフィルタリングであり、その結果はwhere-clauseで使用されます。SQLで完全なフィルタリングを記述することは不可能であったため、前述の方法が使用されています。where-clauseの内容は処理ごとに変わる可能性があるため、動的なソリューションが必要であることは明らかです。

1
ANSI / ISOはLIMIT標準化を計画していますか?
現在、クエリによって返される結果の数を制限する最良の方法を標準化する計画はありますか? スタックオーバーフローの質問は、MYSQL LIMITキーワードに代わるANSI SQLはありますか?は、この動作をさまざまな言語で処理するさまざまな方法を示しています。 DB2 -- select * from table fetch first 10 rows only Informix -- select first 10 * from table Microsoft SQL Server and Access -- select top 10 * from table MySQL and PostgreSQL -- select * from table limit 10 Oracle -- select * from …

1
「制限1000、25」と「制限25オフセット1000」
最近、MySQLにoffset機能があることがわかりました。オフセットの結果、またはオフセットと制限バリアントの違いについてのドキュメントを探していましたが、探しているものが見つからないようです。 テーブルに10.000行あり、行1.000から25件の結果が必要だとします。これまでのところ、私は同じ結果を得るために両方を行うことができました: SELECT id,name,description FROM tablename LIMIT 1000,25 SELECT id,name,description FROM tablename LIMIT 25 OFFSET 1000 私が知りたいのは、この2つの違いです。 これは実際に同じことをするのですか、それとも私の理解は間違っていますか? 大きなテーブルでは1つ遅い/速い 変更するとオフセットの結果は変わりますかWHERE column=1(たとえば、列に100を超える異なる値がある) オフセットの結果を変更したときORDER BY column ASC(ランダムな値があると仮定して) これが「愚かな」質問であり、誰かがその主題を啓発する文書を知っている場合は、それらを返信に追加してください。 私は、オフセットがデータベースで見つかった最初のX行をスキップして、ソートと場所を無視していると感じています。
11 mysql  limits 

2
MongoDBはメモリ不足になると終了します
次の構成があります。 3つのDockerコンテナーを実行するホストマシン: MongoDB Redis 前の2つのコンテナーを使用してデータを格納するプログラム RedisとMongoDBはどちらも、大量のデータを格納するために使用されます。RedisがすべてのデータをRAMに保持する必要があることはわかっています。これで問題ありません。残念ながら、mongoは大量のRAMを消費し始め、ホストRAMがいっぱいになると(ここでは32GBについて話している)、mongoまたはRedisがクラッシュします。 これに関する次の以前の質問を読みました。 MongoDBのRAM使用量を制限する:明らかにほとんどのRAMがWiredTigerキャッシュによって使い果たされています MongoDBのメモリ制限:ここで明らかに問題はログデータでした MongoDBのRAMメモリ使用量を制限します。ここでは、mongoのメモリを制限して、キャッシュ/ログ/データに使用するメモリ量を少なくすることを推奨しています。 MongoDBが使用するメモリが多すぎる:ここでは、より高速なアクセスを提供するために可能な限り多くのRAMを使用する傾向があるのは、WiredTigerキャッシングシステムであると彼らは言います。彼らはまた述べていますit's completely okay to limit the WiredTiger cache size, since it handles I/O operations pretty efficiently mongodbのメモリ使用量を制限するオプションはありますか?:再びキャッシング、彼らはまた追加しますMongoDB uses the LRU (Least Recently Used) cache algorithm to determine which "pages" to release, you will find some more information in these two …

3
Express Editionのサイズ制限に達しているかどうかを確認するにはどうすればよいですか?
私は混乱しています。AFAIK SQL Server 2005 Expressには、4GBのデータベース データサイズの制限があります。ただし、次の結果が得られsp_spaceusedます。 DBがサイズ制限に達しているかどうかを確認するにはどうすればよいですか? 未割り当て領域はspace left制限に達するまでですか? 残りのスペースはどれくらいありますか? ないindex_size限度で数えますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.